MySQL 在 Windows 環境安裝看似簡單,實則暗藏多個「坑」:命令列閃退、密碼正確卻拒絕訪問、重裝卡在最後一步、中文亂碼等。本文彙總實戰踩坑經驗,提供標準化排查與解決方案,並附贈「重裝乾淨步驟」檢查清單。
現象: 雙擊啟動,視窗一閃即關閉。
原因: 安裝目錄下只有 my-default.ini,MySQL 啟動時尋找 my.ini 失敗。
解決: 將 my-default.ini 重命名為 my.ini(或複製一份)。免安裝版(ZIP)同理,必須有 my.ini 且配置 basedir/datadir。
Access denied for user ''@'localhost' to database 'mysql'現象: 密碼確定正確,仍拒絕訪問。
原因: mysql.user 表中安裝向導建立的 root 帳號 Grant_priv = 'N',缺乏授權權限。
解決步驟:
mysql\bin 目錄。mysqld --skip-grant-tablesmysql -u rootUSE mysql; UPDATE user SET Grant_priv = 'Y' WHERE User = 'root' AND Host = 'localhost'; FLUSH PRIVILEGES;
原因: 殘留註冊表、服務、資料目錄導致衝突。
徹底清理步驟:
MySQL 服務。C:\Program Files\MySQL)。C:\ProgramData\MySQL(隱藏資料夾,需顯示)。regedit 搜尋 MySQL,刪除 HKEY_LOCAL_MACHINE\SOFTWARE\MySQL、HKEY_CURRENT_USER\SOFTWARE\MySQL 相關鍵值。原因: 安裝時未選 UTF-8,或連接層未指定編碼。
解決:
UTF-8 作為預設字符集。?useUnicode=true&characterEncoding=utf8。my.ini 設 character-set-server=utf8mb4。mysql -uroot -p 登入失敗,但 --skip-grant-tables 可登入解決: 安裝時不要設定 root 密碼,安裝完成後登入再執行:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES;
| 階段 | 關鍵動作 |
|---|---|
| 安裝前 | 以管理員身分運行安裝程式;關閉防火牆/殺毒軟體;備份舊資料 |
| 安裝類型 | 選 Custom,手動指定安裝路徑、資料路徑(避免中文/空格) |
| 字符集 | 選 UTF-8 (utf8mb4) |
| Root 密碼 | 安裝時留空,事後用 ALTER USER 設定 |
| 服務配置 | 勾選「將 MySQL 註冊為 Windows 服務」,服務名建議預設 |
| 安裝後 | 驗證 my.ini 存在;SHOW VARIABLES LIKE 'char%' 確認 utf8mb4 |
D:\MySQL)。my-default.ini 為 my.ini,修改:[mysqld] basedir=D:/MySQL datadir=D:/MySQL/data port=3306 character-set-server=utf8mb4 default-storage-engine=InnoDB
mysqld --initialize-insecure --user=mysqlmysqld --install MySQLnet start MySQLmysql -u root -p(直接回車)→ ALTER USER 'root'@'localhost' IDENTIFIED BY 'pwd';MySQL 安裝問題 90% 來自「殘留未清理」、「字符集未統一」、「權限表異常」。遵循「徹底清理 → 管理員安裝 → 選 UTF-8 → 事後設密 → 驗證配置」標準化流程,可避開絕大多數坑點。遇到疑難雜症,優先檢查 error.log(datadir 下)與 Windows 事件檢視器。