红联Linux门户
Linux帮助

关于修改mysql从库主机名导致主从同步失败

发布时间:2016-01-28 16:16:01来源:linux网站作者:鸿弟

如果修改了从库的主机名,而从库又忘了做relay-log和relay-log-index的配置,估计会导致从库同步失败。由于公司刚改了主机名,写个文章,后续出问题好进行改进。方案测试通过。


步骤如下:

1: 从库先停止主从复制

stop slave;

2: 记录下主从同步的信息(主要是以下两个信息)

show slave status\G

Master_Log_File: mysql-bin.000085

Read_Master_Log_Pos: 120

3: 重置数据库

reset slave;

--> 在这里,最好设置一个两个参数,预防后续再改主机名

relay-log = relay-log

relay-log-index = relay-log.index

4: 如果主库设置给从库的用户名和密码忘记了话,再grant一次(记得就跳过这步了)

grant replication slave on *.* to 'replication'@'192.168.1.2' identified by 'xxx';

5: 从库设置slave

change master to master_log_file='mysql-bin.000085',master_log_pos=120,master_user='replication',master_password='xxx', master_host='192.168.1.1';

6: 开启从库

start slave;


另外,再reset slave后感觉得配置下relay-log和relay-log-index,然后重启下数据。再从第5步开始,这样后续改主机名就不会影响到了。

如果是主库没指定bin-log和bin-log-index,那修改主机名后会怎么样,不知道会产生什么样的问题和应对方案该怎么样。


暂时方案如下:

1: 在mysql上找到主的位置,应该是一开始的。位置:4

show master status\G

--> 其实这里,如果改了主机名,最好在配置里面指定两个参数(后续改主机就没事了)

log-bin=master-bin

log-bin-index = masters-bin.index

2: 先把从库停止

stop slave;

3: 把之前从库的同步信息全部去掉

reset slave;

4: 然后指向主的第一个位置开始同步

change master to master_log_file='master-bin.000001',master_log_pos=4,master_user='replication',master_password='xxx', master_host='192.168.1.1';

5: 再开启从应该就可以了

start slave;


本文永久更新地址:http://www.linuxdiyf.com/linux/17757.html