ERROR 2019 (HY000): Can't initialize character set gb2312
系統、資料庫均配置為 UTF-8,卻意外出現 gb2312 初始化失敗。
經排查發現 /etc/profile 中存在環境變數污染:
LANG=zh_CN.GB2312 export LANG
此設定導致 SSH 終端輸入編碼為 GB2312,MySQL 客戶端繼承該環境變數,嘗試以 gb2312 連線,但伺服器端未安裝該字符集支援,故報錯。
/etc/profile,註釋或移除上述 GB2312 設定echo $LANG 應顯示 zh_CN.UTF-8若匯入 SQL 檔出現亂碼,需在匯入指令中顯式指定字符集:
mysql -uroot -p 資料庫名 < 備份檔.sql --default-character-set=utf8
/etc/profile、~/.bashrc 設定非 UTF-8 語系CHARSET=utf8mb4