Mysql

當 master 的日誌記錄格式設置為基於行時,從 Mariadb 10.1 到 Mysql 5.1/5.0/5/5 的複制錯誤

  • January 8, 2022

從 Mariadb 10.1 複製到 MySQL (5.0, 5.1, 5.5) 或 Mariadb (5.2, 5.5) 較低版本時,如果 master設置為 row,則複製失敗,slave ( )binlog_format出現以下消息:show slave status \G;

Last_Error:主從表定義不匹配:第 18 列類型不匹配 - 收到類型 19,rtmariadb10.empdetails 具有類型 11

這裡

Master: Mariadb 10.1,binlog_format: row ; 
Slave : Mysql 5.1, binlog_format=statement/row/mixed(any one of these) 

有人可以幫忙解決這個問題嗎?

您遇到了說複製不能從較新的 Master 到較舊的 Slave 的原因之一。

你願意解釋一下最終目標嗎?也許我們可以討論一個解決方法。

考慮BLACKHOLE“中繼”伺服器中的引擎。我現在不詳細說明您的情況,但請看:

Master – 新版本 –>

Relay – 中間版本 –>

Slave – 舊版本

中繼將接收數據並將其傳遞給從站,甚至不儲存它(“黑洞”)。希望通過合適的中間版本和/或在一側使用 SBR 和在另一側使用 RBR,您可以避免您的問題。

引用自:https://dba.stackexchange.com/questions/157565