MySQL 5.7 重大變更:無預建 data 目錄、root 初始密碼隨機生成。直接套用 5.6 步驟會導致「服務啟動失敗、無錯誤訊息」。本文提供完整修正流程。
mysql-5.7.13-winx64.zip 解壓至 D:\servers\mysql\Path 追加 D:\servers\mysql\binmy-default.ini 為 my.ini,修改:
basedir=D:/servers/mysql
datadir=D:/servers/mysql/data
路徑用正斜線,否則報錯 1067mysqld --initialize --user=mysql --console
輸出末尾會顯示隨機密碼:A temporary password is generated for root@localhost: rr9.8h74twfRmysqld install
net start mysql
mysql -u root -p"rr9.8h74twfR"
SET PASSWORD = PASSWORD('newpass');
EXIT;
C:\mysql-5.7.13-winx64\bin>mysqld install
Service successfully installed.
C:\mysql-5.7.13-winx64\bin>net start mysql
MySQL 服務正在啟動 .
MySQL 服務無法啟動。服務沒有報告任何錯誤。
C:\mysql-5.7.13-winx64\bin>mysqld --initialize --user=mysql --console
...
2016-06-21T14:07:23.355716Z 1 [Note] A temporary password is generated for root@localhost: rr9.8h74twfR
C:\mysql-5.7.13-winx64\bin>net start mysql
MySQL 服務已經啟動成功。
C:\mysql-5.7.13-winx64\bin>mysql -u root -prr9.8h74twfR
Welcome to the MySQL monitor...
mysql> SET PASSWORD = PASSWORD('');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> EXIT
| 錯誤 | 原因 | 解決 |
|---|---|---|
| 服務啟動失敗,無錯誤訊息 | data 目錄未初始化 | 執行 mysqld --initialize --console |
| 系統錯誤 1067 | my.ini 路徑格式錯誤(反斜線) | 路徑改用正斜線 / |
| 系統錯誤 5 | 非管理員權限 | 以管理員身分執行 CMD |
| ERROR 2003 (HY000) | 服務未啟動 | 確認 net start mysql 成功 |
| 密碼錯誤 | 未使用初始化輸出的隨機密碼 | 查看初始化輸出或 .err 日誌 |
隨機密碼寫入 /root/.mysql_secret 或 /var/log/mysqld.log,同樣需 mysqld --initialize 後首次登入修改。