許多開發者在 Windows 上部署 MySQL 5.7 解壓版(免安裝版)時,會遇到服務啟動失敗且無錯誤提示的詭異現象:
D:\mysql-5.7.9-winx64\bin> net start mysql
MySQL 服務正在啟動 .
MySQL 服務無法啟動。
服務沒有報告任何錯誤。
本文提供經驗證的標準化解決方案,核心在於正確初始化數據目錄。
MySQL 5.7+ 移除了預編譯的 data 目錄。首次啟動前,必須執行初始化腳本生成系統表、根用戶、臨時密碼。若手動建立 data 目錄或直接啟動,服務會因缺少核心系統表而靜默失敗。
刪除安裝目錄下所有手動建立的 data 目錄(若存在):
rd /s /q D:\mysql-5.7.9-winx64\data
以管理員身份打開 CMD,切換到 bin 目錄執行:
D:\mysql-5.7.9-winx64\bin> mysqld --initialize --console
關鍵輸出:
2023-10-15T08:30:45.123456Z 0 [System] [MY-013169] [Server] D:\mysql-5.7.9-winx64\bin\mysqld.exe (mysqld 5.7.9) initializing of server in progress as process 1234
2023-10-15T08:30:46.789012Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xKp#9qLv!2mR
務必記錄臨時密碼(如 xKp#9qLv!2mR),首次登入需修改。
補充:若需空密碼 root(僅限開發環境),可用
mysqld --initialize-insecure --console。
D:\mysql-5.7.9-winx64\bin> mysqld --install MySQL57
Service successfully installed.
D:\mysql-5.7.9-winx64\bin> net start MySQL57
MySQL57 服務正在啟動 .
MySQL57 服務已經啟動成功。
mysql -u root -p
-- 輸入臨時密碼 xKp#9qLv!2mR
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!';
Query OK, 0 rows affected (0.01 sec)
| 錯誤操作 | 後果 | 正確做法 |
|---|---|---|
| 手動建立 data 目錄 | 缺少系統表,服務靜默失敗 | 刪除 data,執行 mysqld --initialize |
| 未以管理員身份運行 CMD | 安裝服務/寫入數據目錄權限不足 | 右鍵 CMD 選「以管理員身份運行」 |
| 忽略臨時密碼 | 無法首次登入 | --console 參數輸出到屏幕,必須截圖/複製保存 |
| my.ini 配置錯誤(basedir/datadir 路徑) | 服務找不到安裝/數據目錄 | 使用正斜槓 / 或雙反斜槓 \\,確保路徑存在 |
[mysqld]
basedir=D:/mysql-5.7.9-winx64
datadir=D:/mysql-5.7.9-winx64/data
port=3306
character-set-server=utf8mb4
default-storage-engine=INNODB
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
MySQL 5.7+ Windows 免安裝版啟動失敗 90% 因未執行 mysqld --initialize。遵循「刪 data → 初始化 → 安裝服務 → 啟動 → 改密碼」標準流程,即可一次成功。記住:初始化是不可跳過的必要步驟,而非可選項。