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