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

MySQL 查看與修改安裝時字符集配置:SHOW VARIABLES、my.cnf 修改與重啟驗證

     編輯:MySQL 資料庫相關知識

確認 MySQL 當前字符集配置、修改預設字符集並生效的標準流程。

1. 查看當前字符集


# 進入 mysql client
mysql -h127.0.0.1 -uroot -p

# 查看所有 character_set 相關變數
SHOW VARIABLES LIKE 'character%';

關鍵輸出解讀

變數含義建議值
character_set_server伺服器預設字符集utf8mb4
character_set_database當前資料庫字符集utf8mb4
character_set_client客戶端發送字符集utf8mb4
character_set_connection連線處理字符集utf8mb4
character_set_results結果集字符集utf8mb4
collation_server伺服器預設排序規則utf8mb4_general_ci

2. 修改預設字符集 (永久生效)

  1. 編輯 my.ini (Windows) 或 my.cnf (Linux):
    找到 [mysqld] 區段,新增/修改:
    character_set_server=utf8mb4
    collation_server=utf8mb4_general_ci
  2. 重啟 MySQL 服務:
    Windows: net stop mysql && net start mysql 或服務管理單元。
    Linux: systemctl restart mysqld。
  3. 重新執行 SHOW VARIABLES LIKE 'character%' 驗證。

3. 現有庫表字符集轉換 (不自動遷移)


-- 庫級轉換 (僅影響後續建表)
ALTER DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

-- 表級轉換 (含資料重寫,大表慎用)
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

常見問題

  • 修改 my.cnf 未重啟 → 不生效。
  • 客戶端連線未指定字符集 → 仍用舊編碼傳輸,須在連線字串加 characterEncoding=utf8 或執行 SET NAMES utf8mb4。
  • 舊資料為 latin1 存入中文 → 直接 CONVERT 會產生雙重編碼亂碼,需先 iconv 轉碼再匯入。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved