MySQL 免安裝版 (綠色版/解壓版) 預設不包含 my.ini 配置文件,僅提供 my-default.ini 模板。若直接修改模板無效,需複製並重命名為 my.ini 後調整關鍵參數,即可解決中文亂碼、存儲表情符等字符集問題。
# 在 MySQL 解壓根目錄下
copy my-default.ini my.ini
my.ini,修改兩處關鍵配置:
[mysqld]
# 1. 設置服務端默認字符集
character_set_server = utf8
# 2. 保留原有 sql_mode 並在後追加端口與客戶端字符集
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
port=3306
default-character-set=utf8
說明:
character_set_server 決定服務端存儲、排序默認字符集。default-character-set 影響客戶端連接默認字符集 (如 mysql 命令行)。port=3306 顯式聲明端口,避免衝突。net stop mysql (若註冊為服務)mysqld.exe 或運行啟動腳本。mysql -u root -p
SHOW VARIABLES LIKE 'character%';
預期輸出關鍵變量均為 utf8:
+--------------------------+----------------------------+
| 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 | ...\share\charsets\ |
+--------------------------+----------------------------+
my-default.ini:MySQL 啟動時讀取 my.ini、my.cnf,不會自動讀取 default 模板。utf8mb4 (支援 4 字節 emoji),5.6 需額外設置 character_set_server=utf8mb4 並重建表。mysqldump --default-character-set=latin1 導出,再導入 utf8 表,或使用 CONVERT TO CHARACTER SET utf8 重建表。綠色版 MySQL 修改字符集核心在於:複製模板 → 改名 my.ini → 設置 server/client 字符集 → 重啟驗證。三步解決「插入中文報錯 Incorrect string value」等經典問題,避免在網上嘗試無效方案浪費時間。