1. 程式人生 > 實用技巧 >MySQL 主從複製常見錯誤答疑

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