搭建mysql数据库主从复制的教程(图文)

发布时间:2020-06-22编辑:脚本学堂
搭建mysql数据库主从复制的教程,供大家学习参考。记住这个顺序:Start slave stop slave reset slave

搭建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主主复制 的环境搭建教程。
mysql-slave-1
主库------my3306
从库------my3307

实验步骤:

主库上的操作:
1)在my3306上建立一个复制用户:
my3306>grant replication slave,replication client on *.* to repl@'localhost' identified by'123456';  

2)在my3306的my.cnf中添加如下内容:
mysql-slave-2

3)通过mysqladmin -P3306 shutdown关闭my3306服务,然后重启服务
4)查看上面的设置是否生效:
mysql-slave-3

从库上的操作:
1)在my3307的my.cnf中添加如下内容:
 

复制代码 代码如下:
server-id = 131202
binlog_format=mixed
log-slave-updates
log-bin = /usr/local/mysql/log/3307/mysql-bin
relay_log = /usr/local/mysql/log/3307/relay-bin
read-only

2)关闭my3307服务,重启my3307服务
 

复制代码 代码如下:
mysqladmin  --port=3307 shutdown
mysqld_multi start 3307

3)在my3307上执行
mysql-slave-4

4)查看my3307的状态
mysql-slave-5

5)在my3307上start slave,再查看my3307的状态
mysql-slave-6

此时,slave上的两个线程就已经启动了

在主库my3306上查看:
mysql-slave-7

在从库my3307上查看
mysql-slave-8

测试:

在主库my3306上的test数据库添加一个zheng:
mysql-slave-9

在从库my3307上查看test数据库
mysql-slave-10
至此,主从搭建就成功了。

注意:在新建用户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主从同步系列教程