首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 徹底解決中文亂碼:Illegal mix of collations 終極方案

     編輯:MySQL 綜合教學

MySQL 徹底解決中文亂碼:Illegal mix of collations 終極方案

MySQL 常出現 Illegal mix of collations for operation 錯誤,根因在於多層級字符集設定不一致。本文系統梳理字符集層級並給出統一配置方案。

MySQL 字符集層級架構

  • 伺服器層:character-set-server / default-character-set (預設採用)
  • 資料庫層:character-set-database
  • 資料表層:character-set-table
  • 客戶端層:character-set-client (連線發送)
  • 結果集層:character-set-results (回傳編碼),若未設定則回落至 client 設定

最佳實踐:僅在伺服器層設定 character-set-server=utf8,建庫建表時不單獨指定,自動繼承伺服器設定,確保全鏈路一致。

Linux 環境完整配置步驟

  1. 編輯配置檔:vim /etc/mysql/my.cnf
  2. 尋找 [client] 區段,在其下添加:
    default-character-set=utf8
  3. 儲存離開,重啟服務:
/etc/init.d/mysql stop
/etc/init.d/mysql start

驗證配置生效

mysql> SHOW VARIABLES LIKE 'character\_set\_%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| character_set_client     | utf8   |
| character_set_connection | utf8   |
| character_set_database   | utf8   |
| character_set_filesystem | binary |
| character_set_results    | utf8   |
| character_set_server     | utf8   |
| character_set_system     | utf8   |
+--------------------------+--------+

所有關鍵變數均顯示 utf8 即表示配置成功,後續涉及中文操作將不再出現亂碼或排序規則衝突。

此方案通過統一伺服器端字符集,從源頭消除多層級編碼不匹配問題,適用於 MySQL 5.5+ 版本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved