透過 SHOW VARIABLES LIKE 'character_set%%'; 可檢視當前編碼設定。MySQL 編碼可在以下六個層級配置,優先級由高到低:
Windows 編輯 my.ini,Linux 編輯 /etc/my.cnf,在對應區段加入:
[mysqld] character-set-server=utf8 [mysql] default-character-set=utf8 [mysql.server] default-character-set=utf8 [mysqld_safe] default-character-set=utf8 [client] default-character-set=utf8
修改後需重啟 MySQL 服務生效。
CREATE DATABASE test CHARACTER SET utf8;
CREATE TABLE test (id INT PRIMARY KEY) DEFAULT CHARSET=utf8;
ALTER DATABASE test CHARACTER SET utf8;
僅影響後續新建表,現有表不變。
ALTER TABLE test CHARACTER SET utf8;
同樣僅影響後續新增欄位。
ALTER TABLE test MODIFY col_name VARCHAR(50) CHARACTER SET utf8;
此為最細粒度控制,可針對特定欄位調整。
建議全鏈路統一使用 utf8mb4(支援 Emoji 等 4 字節字符),避免編碼不一致導致亂碼或截斷問題。