MySQL 5.6 解壓版不再自帶 my.ini,僅提供 my-default.ini 模板(內容極少)。直接修改模板無效,必須複製並重命名為 my.ini:
copy my-default.ini my.ini
編輯 my.ini,在 [mysqld] 區塊添加:
[mysqld]
character_set_server=utf8
# 注意:utf8 而非 utf-8,無標點符號
# 客戶端默認字符集
[client]
port=3306
default-character-set=utf8
驗證:重啟服務後執行 SHOW VARIABLES LIKE 'char%';,確認 character_set_server、character_set_database、character_set_client 均為 utf8。
Got a packet bigger than 'max_allowed_packet' bytes導入大 SQL 文件時中斷,錯誤碼 1153。默認 max_allowed_packet=4MB 過小。
在 my.ini [mysqld] 區塊添加:
max_allowed_packet=64M
重啟服務驗證:
SHOW VARIABLES LIKE 'max_allowed_packet';
-- 應顯示 67108864 (64M)
Windows 服務控制:
net start MySQL56 或 services.msc 圖形界面net stop MySQL56 && net start MySQL56mysqladmin -u root password "StrongPass#2024"
mysql -uroot -p -e "
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost','127.0.0.1');
DROP DATABASE IF EXISTS test;
FLUSH PRIVILEGES;"
| 問題 | 原因 | 解決 |
|---|---|---|
| 服務啟動失敗 | 配置語法錯誤/端口佔用 | 查看 data\*.err 錯誤日誌 |
| 中文亂碼 | 字符集未統一 | my.ini 設置 utf8 + 連接串指定 charset |
| 無法遠程連接 | 防火牆/bind-address/用戶Host | 開放 3306、bind-address=0.0.0.0、用戶 Host=% |
| 導入超時 | max_allowed_packet/net_read_timeout | 調大兩參數、分批導入 |
MySQL 5.6 解壓版部署核心在於:複製 my-default.ini 為 my.ini → 設置字符集 utf8 → 調大 max_allowed_packet → 服務化管理 → 安全初始化。掌握這五步,即可避開 90% 的初學者遷移陷阱。