確認 MySQL 當前字符集配置、修改預設字符集並生效的標準流程。
# 進入 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 |
my.ini (Windows) 或 my.cnf (Linux):[mysqld] 區段,新增/修改:character_set_server=utf8mb4collation_server=utf8mb4_general_cinet stop mysql && net start mysql 或服務管理單元。systemctl restart mysqld。SHOW VARIABLES LIKE 'character%' 驗證。
-- 庫級轉換 (僅影響後續建表)
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。CONVERT 會產生雙重編碼亂碼,需先 iconv 轉碼再匯入。