mysql主从同步复制错误解决一例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mysql主从同步复制错误解决⼀例
蚊⼦今天下午搭了⼀主三从的mysql复制,结果所有服务器都配置好后,发现从上报如下的错误
复制代码代码如下:
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
意思就是从上的server_id和主的⼀样的,经查看发现从上的/etc/f中的server_id=1这⾏我没有注释掉(在下⾯复制部分我设置了server_id),于是马上把这⾏注释掉了,然后重启mysql,发现还是报同样的错误。
使⽤如下命令查看了⼀下server_id
复制代码代码如下:
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)
发现,mysql并没有从f⽂件中更新server_id,既然这样就只能⼿动修改了
复制代码代码如下:
mysql> set global server_id=2; #此处的数值和f⾥设置的⼀样就⾏
mysql> slave start;
如此执⾏后,slave恢复了正常。
不过稍后蚊⼦使⽤/etc/init.d/mysqld restart重启了mysql服务,然后查看slave状态,发现⼜出现了上⾯的错误,然后查看server_id发现这个数值⼜恢复到了1。
之后蚊⼦⼜重新查看了⼀下/etc/f的内容,确认应该不是这个⽂件的问题,于是去google查了⼀下,看到mysql在启动的时候会查找/etc/f、DATADIR/f,USER_HOME/f。
于是我执⾏了
复制代码代码如下:
find / -name "f"
居然在/usr/local/mysql这个⽬录下发现了f⽂件,于是蚊⼦将这个⽂件删除了,然后再重启mysql服务,发现⼀切恢复了正常。
如果有⼈也出现类似的问题,不妨试试这个办法吧。