Windows 下 MySQL 作為系統服務運行,安裝/移除需在管理員權限命令提示字元執行。假設安裝路徑為 C:\mysql,請根據實際路徑調整。
@echo off
REM 安裝服務
"C:\mysql\bin\mysqld.exe" --install MySQL
REM 啟動服務
net start MySQL
pause
關鍵點:
mysqld.exe (非 mysqld-nt.exe,後者為舊版 NT 專用)--install 可指定服務名:--install MySQL57--defaults-file="C:\mysql\my.ini"@echo off
REM 停止服務
net stop MySQL
REM 移除服務
"C:\mysql\bin\mysqld.exe" --remove MySQL
pause
順序嚴禁顛倒:必須先 net stop 再 --remove,否則服務殘留導致重裝失敗。
mysqld.exe 或命令列執行,視窗一閃即關核心原因:舊版 MySQL 服務殘留在系統服務管理器中,導致新版程式無法正確註冊/啟動。單純用「新增/移除程式」解除安裝不會移除已註冊的系統服務。
cd /d C:\mysql\bin
mysqld.exe --remove MySQL
# 若服務名不同,用 sc query 確認
sc query state= all | findstr /i mysql
sc delete "MySQL服務名"
cd /d C:\mysql\bin
mysqld.exe --install MySQL
net start MySQL
mysqld.exe 進程存在即成功| 步驟 | 動作 | 說明 |
|---|---|---|
| 1 | 檢查服務管理器 | services.msc → 找 MySQL → 停止並設為手動/停用 |
| 2 | 命令列移除服務 | mysqld.exe --remove (需管理員權限) |
| 3 | 程式和功能解除安裝 | 標準卸載流程 |
| 4 | 刪除安裝目錄 | 預設 C:\MySQL、C:\Program Files\MySQL |
| 5 | 刪除資料目錄 | 預設 C:\ProgramData\MySQL\MySQL Server X.Y\Data (隱藏資料夾) |
| 6 | 清理登錄 (謹慎) | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL* |
| 7 | 重啟系統 | 確保所有鎖定釋放 |
| 8 | 重新安裝 | 以管理員身分執行安裝程式 |
cd /d C:\mysql\bin
mysqld.exe --console --defaults-file="C:\mysql\my.ini"
# Ctrl+C 停止
此模式下錯誤直接輸出至控制台,便於診斷配置錯誤、權限問題、插件載入失敗等。
my.ini 中 basedir、datadir 路徑錯誤或含中文/空格innodb_data_file_path 與現有檔案大小不符netstat -ano | findstr 3306)新專案強烈建議使用容器化方案,完全繞過 Windows 服務註冊、路徑、權限等棘手問題:
# Docker Desktop for Windows
docker run -d --name mysql \
-e MYSQL_ROOT_PASSWORD=StrongPassw0rd! \
-v D:\docker\mysql\data:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0
優勢:版本隔離、配置即代碼、資料持久化、一鍵升級/回滾、跨環境一致性。
net stop → mysqld --remove → 解除安裝 → 刪目錄 → 重啟mysqld --console 看即時輸出