MySQL Master 5.5 - Slave 5.6 - 未知系統變數“binlog_checksum”,錯誤程式碼:1193
我在從屬伺服器上看到以下警告:
2016-11-18 22:48:03 12808 [Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 0 2016-11-18 22:48:03 12808 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.018098' at position 920330293, relay log '/mnt/data/mysql/mysqld-relay-bin.318142' position: 473446279 2016-11-18 22:48:03 12808 [Note] Slave I/O thread: connected to master 'repl@xxx:3306',replication started in log 'mysql-bin.018103' at position 271452699 2016-11-18 22:48:03 12808 [Warning] Slave I/O: Notifying master by SET @master_binlog_checksum= @@global.binlog_checksum failed with error: Unknown system variable 'binlog_checksum', Error_code: 1193 2016-11-18 22:48:03 12808 [Warning] Slave I/O: Unknown system variable 'SERVER_UUID' on master. A probable cause is that the variable is not supported on the master (version: 5.5.42-log), even though it is on the slave (version: 5.6.31-log), Error_code: 1193
- 據我了解,當 master 與 5.6 slave 不兼容時會發生這種情況,是否正確?
- 我應該忽略這些警告嗎?如果不是,如何在不損壞任何 MYSQL MASTER 的情況下解決此問題?
大師版:
Variable_name Value ----------------------- ------------------------------ innodb_version 5.5.42 protocol_version 10 slave_type_conversions version 5.5.42-log version_comment MySQL Community Server (GPL) version_compile_machine x86_64 version_compile_os Linux
奴隸版:
Variable_name Value ----------------------- ------------------------------ innodb_version 5.6.31 protocol_version 10 slave_type_conversions version 5.6.31-log version_comment MySQL Community Server (GPL) version_compile_machine x86_64 version_compile_os Linux
謝謝 !
如果您
SHOW SLAVE STATUS\G
在 Slave 上執行,並且看到Slave_IO_Running: Yes
,那麼 IO 執行緒就可以了。儘管如此,請注意警告
2016-11-18 22:48:03 12808
$$ Warning $$Slave SQL:如果發生崩潰,此配置不保證中繼日誌資訊一致,Error_code:0
錯誤程式碼 0 表示這不是錯誤,只是提供資訊。
2016-11-18 22:48:03 12808
$$ Warning $$從站 I/O:通過 SET @master_binlog_checksum= @@global.binlog_checksum 通知主站失敗並出現錯誤:未知系統變數“binlog_checksum”,錯誤程式碼:1193
您提到錯誤涉及變數
binlog_checksum
。啟用此選項會導致主伺服器為寫入二進制日誌的事件寫入校驗和。設置為 NONE 以禁用,或用於生成校驗和的算法的名稱;目前,僅支持 CRC32 校驗和。從 MySQL 5.6.6 開始,CRC32 是預設值。
此選項是在 MySQL 5.6.2 中添加的。
由於您的 Master 是 5.5.42,因此無法
binlog_checksum
將 Master 與 Slave 進行比較。警告有效。也許在從站上將 binlog_checksum 設置為“NONE”可能會禁用此檢查。
2016-11-18 22:48:03 12808
$$ Warning $$從站 I/O:主站上的未知系統變數“SERVER_UUID”。一個可能的原因是主伺服器(版本:5.5.42-log)不支持該變數,即使它在從伺服器(版本:5.6.31-log)上,Error_code:1193
這是同樣的問題。正如消息本身所說,選項server_uuid在 MySQL 5.5.42(主)中不存在。
結語
只要複製正在執行,您現在就可以了。強烈建議盡快讓你的 Master 升級到 MySQL 5.6.31。為什麼 ?
MySQL 5.6 向
DATETIME
. 如果 Master (5.5.42) 向 Slave (5.6.31) 發送 DATETIME,IO Thread 將立即中斷。請從2015-01-02
我提到這一點的地方閱讀我的文章。您可以通過在Master (5.5)和Slave (5.6)
DATETIME
上切換到STATEMENT
複製(設置binlog_format
為STATEMENT
)來解決這個問題。