Mysql

如何在 MySQL 5.5 上完全禁用 utf8mb4?

  • February 13, 2013

我知道你不應該這樣做,但我有一個 MySQL 5.5 主伺服器和一個 MySQL 5.1 複製從伺服器。這應該沒問題,除非我做一些愚蠢的事情,比如使用 5.1 不支持的 utf8mb4。好吧,一段時間以來一切都很順利,今天我遇到了複製從屬失敗,因為 MySQL 5.1 不支持 character_set_client #45。

我花了很多時間試圖找出 #45 是什麼……你看,它沒有出現在任何 MySQL 的配置文件中——即使在 5.5 上也是如此。我最終確定它是 utf8mb4(我曾懷疑過),但我不確定為什麼要使用它。我在主伺服器上執行了一個靜態查詢……一些簡單的事情UPDATE table SET field='value',它通過將字元集設置為 utf8mb4 複製到從伺服器。我同時執行了數百條類似的UPDATE語句,但其中一些觸發了utf8mb4的使用。

所以…我要將我的奴隸升級到 5.5,但同時有沒有辦法告訴 MySQL永遠不要使用 utf8mb4?

政治正確答案

您不能從新主伺服器到舊從伺服器進行 MySQL 複製

我寫了很多關於這個的文章:

此外,還有可能處理內部 BINLOG 幻數在錯誤的位置和複製變得老舊。這是我關於 BINLOG 幻數的文章:

由於在此期間您無能為力,請將您的 Slave 升級到 MySQL 5.5

另一種觀點

平心而論,@ChristopherSchultz是正確的,因為您可以實現它。我只是大喊大叫“RISK !!!” 由於 BINLOG 幻數在 MySQL 複製宇宙中的位置,所以要更加謹慎。

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