MySQL主从复制

数据库主从复制搭建

Start slave stop slave reset slave

搭建环境:game73306,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

这次搭建的环境都是新建立的,所以不用考虑数据拷贝复制这个环节

 

主库------my3306

从库------my3307

实验步骤:

主库上的操作:

1)在my3306上建立一个复制用户:

my3306>grant replication slave,replication client on *.* to repl@'localhost' identified by'123456';   

2)my3306my.cnf中添加如下内容:

     

3)通过mysqladmin -P3306 shutdown关闭my3306服务,然后重启服务

4)查看上面的设置是否生效:

           

           

从库上的操作:

1)my3307my.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上执行

4)查看my3307的状态

5)my3307start slave,再查看my3307的状态

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

在主库my3306上查看:

在从库my3307上查看

 

测试:

在主库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上,新建一个用户[email protected]

然后再从库上应用: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通行。这样之前的问题也就解决了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章