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

解決 MySQL CMD 客戶端中文亂碼:字符集配置全流程

     編輯:MySQL 綜合教學

解決 MySQL CMD 客戶端中文亂碼:字符集配置全流程

Windows 下使用 cmd 登入 MySQL 時,常遇到無法插入中文、查詢結果顯示亂碼。根因是客戶端字符集與服務端/表字符集不一致。本文給出標準化配置與會話級修正方案。

一、永久配置:修改 my.ini

定位 MySQL 安裝目錄下的 my.ini(或 my.cnf),在 [client] 與 [mysql] 區塊添加:

[client]
port=3306
default-character-set=utf8

[mysql]
default-character-set=utf8

# 服務端同步設置(建議)
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

重啟服務生效:

net stop mysql
net start mysql
# 或服務管理器重啟

二、驗證字符集設置

mysql -u root -p
mysql> SHOW VARIABLES LIKE '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------+

關鍵四項 client、connection、results、database 均為 utf8 即正常。

三、會話級臨時修正(無需重啟)

若無權限修改配置文件,可在登入後執行:

SET NAMES utf8;
-- 等價於以下三條
SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_results = utf8;

-- 若服務端為 latin1 需額外設置
SET character_set_database = utf8;
SET character_set_server = utf8;

四、CMD 窗口字體設置(顯示層面)

  1. CMD 標題欄右鍵 → 屬性 → 字體 → 選擇 TrueType 字體(如「新細明體」、「微軟正黑體」、「Consolas」)。
  2. 啟用 代碼頁 65001(UTF-8):chcp 65001,或在快捷方式目標追加 /k chcp 65001。

五、常見坑點排查

現象可能原因解決
插入中文報錯 Incorrect string value表/列字符集為 latin1ALTER TABLE t CONVERT TO CHARACTER SET utf8mb4;
查詢顯示「???」或亂碼client/results 不一致檢查 SHOW VARIABLES LIKE 'char%',執行 SET NAMES utf8
配置文件修改無效未重啟 / 讀取了其它 my.cnfmysql --help | grep my.cnf 確認加載順序
存儲 Emoji 失敗utf8 僅支援 BMP 平面升級表/庫/連接至 utf8mb4(需 5.5.3+)

六、最佳實踐建議

  • 全鏈路 utf8mb4:新建庫表預設 CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci。
  • 連接池/驅動層指定:JDBC URL 追加 ?characterEncoding=utf8&useUnicode=true;Python charset='utf8mb4';Go DSN charset=utf8mb4。
  • 避免在 SQL 中硬編碼:使用參數化查詢,由驅動處理編碼轉換。

總結

「配置文件落地 + 服務重啟 + 客戶端字體 + 會話驗證」四步走,徹底解決 CMD 中文亂碼。核心原則:**客戶端、連接層、服務端、存儲層**四端字符集**統一**。生產環境強烈建議全鏈路升級 utf8mb4,一次到位支援 Emoji 與生僻字。

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