MySQL 5.7 引入重大變化:data 目錄不再預建、root 初始密碼為隨機生成。本文記錄 ZIP 版在 Windows 上的完整部署流程,特別解決「服務啟動失敗、無錯誤訊息」的經典問題。
D:\Mysql\mysql-5.7.13-winx64\[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=D:\Mysql\mysql-5.7.13-winx64
datadir=D:\Mysql\mysql-5.7.13-winx64\data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
手動建立 data 空目錄。
cd D:\Mysql\mysql-5.7.13-winx64\bin
mysqld -install
net start mysql
關鍵點: 5.7 首次啟動前必須初始化 data 目錄,否則服務啟動失敗且無明確錯誤(錯誤 3534)。
mysqld --initialize --user=mysql --console
輸出末尾會顯示:
[Note] A temporary password is generated for root@localhost: rr9.8h74twfR
此為一次性隨機密碼,必須立即複製保存。
net start mysql
mysql -u root -p"rr9.8h74twfR"
-- 登入成功後立即修改密碼
SET PASSWORD = PASSWORD(''); -- 設為空或自訂強密碼
EXIT;
後續可直接 mysql -u root 免密登入(若設為空)。
| 現象 | 原因 | 解決 |
|---|---|---|
| net start mysql 失敗,無錯誤訊息 | data 目錄未初始化 | 執行 mysqld --initialize --console |
| ERROR 2003 (HY000): Can't connect | 服務未啟動 | 確認 net start mysql 成功 |
| 密碼錯誤 | 未使用初始化輸出的隨機密碼 | 查看初始化輸出或錯誤日誌 .err 檔案 |
Linux 安裝 5.7 時,隨機密碼寫入 /root/.mysql_secret 或系統日誌 /var/log/mysqld.log,同樣需初始化後首次登入修改。