分享

学习搭建mysql主从同步

 命運之輪 2011-03-08

由于没有硬件环境,于是在虚拟机的linux里编译安装了两个mysql,一个作为master一个作为slave,分别安装在/home/jhw/mysql和/home/jhw/mysql2,两个mysql默认同一个端口3306是不可以的,所以修改mysql2中的配置文件my.cnf,把port改成3307(还要注意socket的路径是否是当前mysql的安装路径,要一致)。如果在编译时没有指定datadir,还要在my.cnf中加入“datadir=/home/jhw/mysql2/data“,当然data目录需要mkdir自己建。

修改好配置文件后,测试两个mysql能不能启动,分别到bin目录下去执行 ./mysqld_safe & 命令,再用netstat -nltp查看3306和3307端口是否起来,启动没问题后登录到mysql中,这期间我把mysql的密码忘了,网上搜后,可以这样做,停止mysql服务,用mysqld_safe --skip-grant-tables &命令启动mysql ,再用空密码方式登陆mysql -uroot ,在mysql>里就可以修改密码了,使用命令 mysql> update mysql.user set password=PASSWORD('新密码') where User='root'; mysql> flush privileges; mysql> quit 。重新启动linux后就可以了。

接下来就是配置主从了(这里把mysql作为主库,mysql2作为从库),首先在master上添加slave访问主机mysql的用户,登陆主库mysql,执行下面两条授权命令:

mysql> GRANT FILE ON *.* TO jhw@192.168.1.103 IDENTIFIED BY ‘密码’;

mysql> GRANT REPLICATION SLAVE ON *.* TO jhw@192.168.1.103 IDENTIFIED BY ‘密码';

其次,把要同步的数据库文件copy到丛库的data文件夹下,这里我把数据库名叫‘sg’的库文件copy到了丛库中。

然后,修改主库的配置文件,打开my.cnf,设置加入以下参数

        log-bin= mysql-bin               #打开logbin选项以能写到slave的 I/O线程;
        server-id=1                        #表示是本机的序号为1,一般来讲就是master的意思.
         binlog-do-db= sg             #表示同步aa数据库;

       重启主库mysql。

再修改丛库配置文件,打开my.cnf, 找到[mysqld] 至少保证具有以下参数

       server-id=2       #本机序号,表示为从机

       master-connect-retry=60 #每60秒同步一次

       replicate-do-db=sg        #被同步的数据库

       log-slave-updates            #暂时不知什么作用

       master-host =192.168.1.103      #master 的IP地址

       master-user=jhw         # 用来访问master的mysql用户

       master-port =3306       #master中的mysqld的port

保存重启。

这时返回主机mysql>show master status;

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000064 |      246 | sg           |                  |
+------------------+----------+--------------+------------------+

记住,file和position两个值。返回丛库执行

mysql>change master to MASTER_HOST = '192.168.1.103',master_user='jhw',master_password='',master_port='3306',master_log_file='mysql-bin.000064 ',master_log_pos='246';

到这里主从搭建完毕,可以返回主库测试,到mysql>中,执行insert插入数据,再返回丛库mysql >start slave;

mysql>show slave status \G;

同步成功,感谢孙哥指导。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多