針對 Windows 環境 MySQL 兩大高頻痛點——中文亂碼與服務無法啟動,提供從原理到配置的系統級解決方案。
客戶端 → 連接層 → 數據庫層 → 結果集層,任一環節編碼不一致即產生亂碼。核心系統變量:
character_set_client -- 客戶端發送編碼 character_set_connection -- 連接層轉換編碼 character_set_database -- 庫默認編碼 character_set_results -- 結果集返回編碼
| 編碼 | 支援範圍 | 佔用 | 適用場景 |
|---|---|---|---|
| GBK | 2.1 萬漢字(簡繁) | 2 字節 | 純中文項目、兼容舊系統 |
| GB2312 | 6700+ 漢字 | 2 字節 | 極少用,已被 GBK 取代 |
| BIG5 | 1.3 萬繁體字 | 2 字節 | 港澳台地區 |
| UTF-8 | 全球所有語言 | 1-4 字節 | 國際化、新項目首選 |
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci init_connect='SET NAMES utf8'
重啟服務生效。建議統一使用 UTF-8(MySQL 8.0+ 推薦 utf8mb4)。
二、MySQL 服務無法啟動解決方案
方法一:圖形界面服務管理
- 右鍵「此電腦」→「管理」→「服務和應用程序」→「服務」
- 找到 MySQLxx(如 MySQL57),右鍵「啟動」
方法二:命令行啟動(需知服務名)
常見啟動失敗原因排查
netstat -ano | findstr 3306 找到 PID 杀掉mysqld --console 前台運行查看報錯datadir 路徑讀寫權限不足mysqld.exe 重試
my.ini 並重啟服務