Error 2003: Can't connect to MySQL server (客戶端連不上,實則服務未啟動成功)。Error 1067: The process terminated unexpectedly (進程異常退出)。cd /d "C:\Program Files\MySQL\MySQL Server 8.0\bin" # 進入 bin 目錄
mysqld --remove
mysqld --install
# 或指定配置文件與服務名
mysqld --install MySQL80 --defaults-file="C:\Program Files\MySQL\MySQL Server 8.0\my.ini"
net start mysql
# 或指定服務名
net start MySQL80
The MySQL service was started successfully. 即成功。[mysqld]
basedir=C:/Program Files/MySQL/MySQL Server 8.0/ # 必須用正斜槓或雙反斜槓,結尾帶斜槓
datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data/ # 數據目錄,需存在且 mysql 用戶可寫
datadir 目錄下必須有初始化後的文件 (ibdata1, mysql 目錄等)。若為空,需先 mysqld --initialize-insecure。[mysqld]
default-storage-engine=INNODB # 若為精簡版無 InnoDB,啟動失敗
# 修改為 MyISAM (不支援事務/外鍵,僅應急)
default-storage-engine=MYISAM
# 或安裝完整版 MySQL (含 InnoDB)
驗證:mysqld --verbose --help | findstr "default-storage-engine" 確認生效值。
type "C:\ProgramData\MySQL\MySQL Server 8.0\Data\.err" (路徑視 datadir 而定),看最後報錯堆疊。mysqld --console --defaults-file="C:\Program Files\MySQL\MySQL Server 8.0\my.ini"
直接在終端輸出啟動日誌,Ctrl+C 停止,最直觀定位問題。
netstat -ano | findstr :3306,殺掉佔用進程或改端口。datadir 目錄權限允許運行服務的用戶 (通常為 SYSTEM 或指定服務賬號) 讀寫。右鍵目錄 → 安全 → 編輯 → 添加服務用戶完全控制。mysqld.exe 白名單。my.ini 必須為 **UTF-8 無 BOM** 或 **ANSI**,UTF-8 BOM 會導致解析失敗。mysqld.exe、my.ini。--install ServiceName 指定唯一名稱,net start ServiceName 對應啟動。mysql_upgrade -u root -p 更新系統表,否則 1067 概率極高。