首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 命令列字符集錯誤:ERROR 2019 根因排查與解決

     編輯:MySQL 資料庫相關知識

錯誤現象

ERROR 2019 (HY000): Can't initialize character set gb2312

系統、資料庫均配置為 UTF-8,卻意外出現 gb2312 初始化失敗。

根因分析

經排查發現 /etc/profile 中存在環境變數污染:

LANG=zh_CN.GB2312
export LANG

此設定導致 SSH 終端輸入編碼為 GB2312,MySQL 客戶端繼承該環境變數,嘗試以 gb2312 連線,但伺服器端未安裝該字符集支援,故報錯。

解決方案

  1. 編輯 /etc/profile,註釋或移除上述 GB2312 設定
  2. 重新建立 SSH 連線
  3. 驗證:echo $LANG 應顯示 zh_CN.UTF-8

補充:資料匯入亂碼處理

若匯入 SQL 檔出現亂碼,需在匯入指令中顯式指定字符集:

mysql -uroot -p 資料庫名 < 備份檔.sql --default-character-set=utf8

最佳實踐建議

  • 作業系統、終端、資料庫、應用程式四層編碼全鏈路統一為 UTF-8
  • 避免在 /etc/profile、~/.bashrc 設定非 UTF-8 語系
  • 建立資料庫/資料表時顯式指定 CHARSET=utf8mb4
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved