[ERROR] Slave: Error 'Character set '#28' is not a compiled character set
and is not specified in the '.../charsets/Index.xml' file' on query.
Slave IO Thread 正常,SQL Thread 中斷,Seconds_Behind_Master 持續增長。
SHOW BINLOG EVENTS 發現 Master Binlog 含:SET @@session.character_set_client=28, @@session.collation_connection=33, @@session.collation_server=828 = gbk,8 = latin1_swedish_cicharsets/Index.xml 缺少 gbk 定義,無法解析事件-- Master/Slave 對比
SHOW CHARACTER SET LIKE 'gbk'; -- Slave 無輸出,Master 有
SHOW VARIABLES LIKE 'character_set%';
mv /usr/local/mysql /usr/local/mysql-oldwget https://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.37-linux-i686-glibc23.tar.gztar xzf mysql-5.0.37-linux-i686-glibc23.tar.gz -C /usr/local/
mv /usr/local/mysql-5.0.37-linux-i686-glibc23 /usr/local/mysqlchown -R mysql:mysql /usr/local/mysql/data/usr/local/mysql/bin/mysqld_safe --user=mysql &SHOW CHARACTER SET LIKE 'gbk'; → 顯示 gbk 行| 層面 | 源碼編譯安裝 | 官方二進制包 |
|---|---|---|
| 字元集支援 | 預設最小集,需 --with-charset=gbk 等參數重編譯 | 內建完整字元集(含 gbk, utf8mb4 等) |
| charsets/Index.xml | 可能缺失 | 完整 |
| 生產建議 | 不推薦 | 強烈推薦 |
utf8 或 utf8mb4,避免 gbkcharacterEncoding=utf8Last_SQL_Error 關鍵字 Character set 告警
字元集不一致是跨平台複寫隱形殺手,統一編碼、使用官方發布版是根治之道。