MySQL 主从复制常见错误答疑

MySQL 主从复制常见错误答疑

1、启动slave服务器的复制功能时,如果Last_I/O_Error错误:The slave I/O thread stops because master and slave have equal MySQL server UUIDs

解答:
是因为两台服务器的server_uuid重复了。只需要删除slave的data目录/auto.conf文件,重启mysql即可。

server_uuid是配置在data目录/auto.conf文件中,如果未配置mysql启动时自动生成写入到auto.conf文件中。
参考

2.Last_I/O_Error错误:ot fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet;
Increase max_allowed_packet on master;

解答:
1、首先排除master和slave的max_allowed_packet是否设置的太小,把它设置一个比较大的值观察,比如大小为1G
2、如果重新设置后仍然不行,那么需要考虑slave设置的CHANGE MASTER TO的MASTER_LOG_FILE=mysql-bin.000001,MASTER_LOG_POS=155的坐标值是否不对。
3、用mysqlbinlog命令把master的mysql-bin.000001文件打开看看,发现155位置没有需要执行的命令,到234位置出现了需要执行的命令。
4、先关闭slave的复制功能,重新用CHANGE MASTER TO命令设置MASTER_LOG_POS=234,重新开启slave的复制功能,恢复正常。

打开后的mysql-bin.000001文件截取部分如下:

# at 155
#200426 17:56:24 server id 1  end_log_pos 234 CRC32 0x18c1c0f2 	Anonymous_GTID	last_committed=0	sequence_number=1	rbr_only=yes	original_committed_timestamp=1587894984310433	immediate_commit_timestamp=1587894984310433	transaction_length=654
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
# original_commit_timestamp=1587894984310433 (2020-04-26 17:56:24.310433 ?D1ú±ê×?ê±??)
# immediate_commit_timestamp=1587894984310433 (2020-04-26 17:56:24.310433 ?D1ú±ê×?ê±??)
/*!80001 SET @@session.original_commit_timestamp=1587894984310433*//*!*/;
/*!80014 SET @@session.original_server_version=80016*//*!*/;
/*!80014 SET @@session.immediate_server_version=80016*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 234
#200426 17:56:24 server id 1  end_log_pos 452 CRC32 0xb584f41b 	Table_map: `test`.`tb_basic_a` mapped to number 204
posted @ 2020-08-09 16:06  我家有奥特曼  阅读(293)  评论(0编辑  收藏  举报