根据前文 使用Mysql主主同步/Redis主从复制备份网站 在两台机器上设置好Mysql主主同步,今天登录备用服务器查看MySQL同步状态,发现复制IO进程没有正常工作。尝试slave start启动同步进程,出现“Could not initialize master info structure“错误。

上网查了一下,这情况不罕见,不少人都遇到过。其解决办法也简单,重新配置即可,操作如下:

1. 进入Mysql,查看同步状态:show slave status\G;,记住当前同步的文件名和位置:

查看Mysql主从复制状态
查看Mysql主从复制状态

2. 停止复制进程:stop slave;

3. 重置复制信息:reset slave;

4. 重新配置Mysql主从复制信息:

mysql> change master to 
    -> master_host='主库ip',
    -> master_port=主库端口,
    -> master_user='复制用户名',
    -> master_password='复制密码',
    -> master_log_file='已同步的文件名',
    -> master_log_pos=已同步的文件位置;

5. 启动复制进程:start slave;

启动复制进程不报错的话,说明已经正确配置成功了。通过show slave status\G; 命令能看到日志读取IO线程正常工作,其他信息均正常。

参考

  1. 处理一则MySQL Slave环境出现ERROR 1201 (HY000): Could not initialize master info structure的案例
  2. 使用Mysql主主同步/Redis主从复制备份网站