MySQL 5.5 ZIP 版免安裝、綠色部署,適合開發測試環境。本文詳細記錄解壓、環境變數、my.ini 配置、服務安裝、啟動驗證全流程,並深入分析 default-character-set 參數在 5.5 版本的已知 Bug 及完整解決方案。
mysql-5.5.10-win32.zip → C:\mysql-5.5.10-win32MYSQL_HOME=C:\mysql-5.5.10-win32Path 追加 ;%MYSQL_HOME%\binmy-small.ini 重命名,加入核心配置:[mysqld]
# 修正 5.5 Bug:需加 loose- 前綴
loose-default-character-set = utf8
basedir = C:/mysql-5.5.10-win32
datadir = C:/mysql-5.5.10-win32/data
[client]
loose-default-character-set = utf8
[WinMySQLadmin]
Server = C:/mysql-5.5.10-win32/bin/mysqld.exe
直接寫 default-character-set = utf8 會報錯:
[ERROR] MySQL: unknown variable 'default-character-set=utf8'
原因:MySQL 5.5 引入嚴格參數驗證,舊參數需加 loose- 前綴跳過驗證。但僅加 loose- 仍會導致 character_set_server、character_set_database 維持 latin1,插入中文產生亂碼。
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
# loose- 參數僅為相容舊版客戶端
loose-default-character-set = utf8
[client]
default-character-set = utf8
重啟服務後驗證:
mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
+--------------------------+----------------------------+
所有關鍵字元集變數均為 utf8,亂碼問題徹底解決。
# 安裝服務
mysqld -install
# 移除服務
mysqld -remove
# 啟動
net start mysql
# 停止
net stop mysql
mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('root') WHERE User='root';
mysql> FLUSH PRIVILEGES;
ZIP 版部署靈活輕量,但需手動管理配置與服務。掌握 loose- 前綴機制與 character-set-server 正確配置,是避免 5.5 版本字元集陷阱的關鍵。生產環境建議使用安裝版或容器化部署,獲得更完整的服務管理與安全預設值。