現象:安裝進度條卡在「Apply security settings」或「Start Service」,無響應。
根因:舊版本安裝遺留的數據目錄 C:\ProgramData\MySQL\MySQL Server X.Y\Data 干擾新安裝初始化。
修復:
# 1. 完全卸載舊版(控制面板/Geek Uninstaller 深度清理) # 2. 手動刪除殘留目錄 rd /s /q "C:\ProgramData\MySQL" rd /s /q "C:\Program Files\MySQL" # 3. 重新安裝
⚠️ ProgramData 為隱藏目錄,需在資源管理器「查看」勾選「隱藏項目」方可見。
場景:已卸載舊版,重新安裝 5.1/5.5 時,配置向導最後一步彈窗報錯。
安裝程序嘗試以隨機生成的臨時密碼初始化 root 帳號,但因殘留配置/權限衝突導致認證失敗。
# 1. 以管理員身份打開 CMD
# 2. 停止服務
net stop mysql
# 3. 創建初始化 SQL 文件
echo SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPass123!'); > C:\mysql-init.txt
# 4. 跳過權限表啟動並執行初始化文件
cd "C:\Program Files\MySQL\MySQL Server 5.1\bin"
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.1\my.ini" --init-file=C:\mysql-init.txt --console
# 5. 看到 "ready for connections" 後 Ctrl+C 停止
# 6. 刪除初始化文件
del C:\mysql-init.txt
# 7. 正常啟動服務
net start mysql
# 8. 驗證新密碼
mysql -u root -pNewPass123!
關鍵點:--init-file 在服務啟動時自動執行指定 SQL,實現免密重置。--defaults-file 指定正確配置文件路徑(查看服務屬性「執行路徑」確認)。
| 現象 | 可能原因 | 快速對策 |
|---|---|---|
| VC++ 運行庫缺失報錯 | 系統缺少 Visual C++ Redistributable | 安裝 VC++ 2015-2022 x64 運行庫 |
| 端口 3306 被佔用 | 舊實例未停/其他程序佔用 | netstat -ano | findstr 3306 找 PID → 任務管理器結束 |
| 權限不足無法寫入 Data 目錄 | 安裝用戶非管理員/目錄隻讀 | 右鍵目錄 → 安全 → 編輯 → 添加 Users 完全控制 |
| 密碼策略不滿足要求 | 5.7+ 默認 validate_password 插件 | 安裝時勾選「Use Strong Password Encryption」或安裝後調整策略 |
| 路徑含中文/特殊字符 | 安裝目錄/數據目錄路徑不合法 | 全英文路徑,無空格、括號 |
C:\ProgramData\MySQL 舊目錄MySQL Windows 安裝失敗 90% 歸因於「殘留目錄干擾」與「權限/端口衝突」。標準化卸載清理 + 管理員權限安裝 + 預裝運行庫,可避開絕大多數坑。若遇配置向導報錯,--init-file 重置 root 密碼是通用破解鑰匙。建議收藏本文檢查清單,新機部署前逐項核對。