搭建mysql主从复制的教程,供大家学习参考。
记住这个顺序:Start slave stop slave reset slave。
搭建环境:game7:3306,3307
datadir:/usr/local/mysql/data/3306/ /usr/local/mysql/data/3307/
my.cnf:/usr/local/mysql/data/3306/my.cnf /usr/local/mysql/data/3307/myc.nf
本次搭建的环境都是新建立的,所以不用考虑数据拷贝复制这个环节。 ---》》 mysql主主复制 的环境搭建教程。
主库------my3306
从库------my3307
实验步骤:
主库上的操作:
1)在my3306上建立一个复制用户:
my3306>grant replication slave,replication client on *.* to repl@'localhost' identified by'123456';
2)在my3306的my.cnf中添加如下内容:
3)通过mysqladmin -P3306 shutdown关闭my3306服务,然后重启服务
4)查看上面的设置是否生效:
从库上的操作:
1)在my3307的my.cnf中添加如下内容:
2)关闭my3307服务,重启my3307服务
3)在my3307上执行
4)查看my3307的状态
5)在my3307上start slave,再查看my3307的状态
此时,slave上的两个线程就已经启动了
测试:
在主库my3306上的test数据库添加一个zheng:
在从库my3307上查看test数据库
至此,主从搭建就成功了。
注意:在新建用户repl@localhost。然后再从库my3307应用slave时,通过:
change master to master_host='localhost', master_user='repl', master_password='123456', master_log_file='mysql-bin.000002', master_log_pos=0;
结果在启动从库的时候会发现:
Last_IO_Error: error connecting to master 'repl@localhost:3306' - retry-time: 60 retries: 86400
这个错误。原因可能是通信方式有问题,找不到socket文件去通信。然后换成以下方法就可以了:
在主库my3306上,新建一个用户repl@10.16.131.201
然后再从库上应用:change master to master_host='10.16.131.201', master_user='repl', master_password='123456', master_log_file='mysql-bin.000002', master_log_pos=0;
这样主从之间的通信方式就换成了tcp/ip通行。这样之前的问题也就解决了。
本文转自:http://4155621.blog.51cto.com/4145621/1141542
脚本学堂在此基础上略作修改。>>> 更多内容,请访问:mysql主从复制、mysql主从同步系列教程