MySQL 5.7 移除了自帶 data 目錄,首次部署必須執行 mysqld --initialize,否則 net start mysql 會報「服務無法啟動」。
D:\mysql-5.7.11)my.ini(放在解壓根目錄):
[mysqld]
basedir=D:/mysql-5.7.11
datadir=D:/mysql-5.7.11/data
port=3306
bin 目錄mysqld --install
mysqld --initialize --console
輸出末尾會顯示 臨時 root 密碼(如 root@localhost: xYz#1234),務必截圖保存。
net start mysql
mysql -u root -p
-- 輸入臨時密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
| 錯誤現象 | 原因 | 解決 |
|---|---|---|
Can't create directory | 目錄權限不足 | 解壓到非系統盤、非 Program Files 目錄 |
data 目錄不為空 | 重複初始化 | 刪除 data 目錄內所有文件後重試 |
| 忘記臨時密碼 | 未保存 | 刪除 data 重新 --initialize,或 skip-grant-tables 重置 |
mysqld --initialize 無輸出 | 缺少 --console | 加 --console 輸出到屏幕 |
網上流傳「從 5.6 複製 data 目錄」「手建 data 目錄」等非官方方案,實則繞彎路。官方文檔明確:5.7+ 僅需 mysqld --initialize 一條命令。讀官方文檔永遠比找博客更靠譜。