症状:
MySQL主从复制,启动slave时,出现下面报错:
mysql> start slave;
ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
原因:可能为服务器启动后,太长时间连接不到master。
解决办法:查看日志,
可以看到报错,原来是找不到./server246-relay-bin.index文件,找到原因所在了,由于我使用的是冷备份文件恢复的实例,在mysql库中的slave_relay_log_info表中依然保留之前relay_log的信息,所以导致启动slave报错。
mysql提供了工具用来删除记录:slave reset;
slave reset执行候做了这样几件事:
1、删除slave_master_info ,slave_relay_log_info两个表中数据;
2、删除所有relay log文件,并重新创建新的relay log文件;
3、不会改变gtid_executed 或者 gtid_purged的值
mysql> reset slave; Query OK, 0 rows affected (0.01 sec) mysql> change master to master_host='IP', master_port=3306, master_user='用户名', MASTER_PASSWORD='密码', master_log_file='mysql-bin.000594', MASTER_LOG_POS=98175332; mysql> start slave; Query OK, 0 rows affected (0.00 sec)
这样slave 就可以启动了。
转自
(2条消息) MySQL主从复制,启动slave时报错Slave failed to initialize relay log info structure from the repository_大圣欲何的博客-CSDN博客
https://blog.csdn.net/weixin_37998647/article/details/79950133
【FAQ系列】Relay log 导致复制启动失败 - 茁壮的小草 - 博客园
https://www.cnblogs.com/mysql-dba/p/7201513.html