Windows 控制面板的「程式和功能」僅能移除 MySQL 程式文件,但 系統服務註冊、配置文件、註冊表項、數據目錄 往往殘留。這會導致:
# 以管理員身份運行 CMD
net stop MySQL80
sc delete MySQL80
# 或 mysqld --remove MySQL80
確認服務名稱:sc query state= all | findstr MySQL
「設置 → 應用 → 已安裝的應用」搜索 MySQL,逐項卸載:
# 典型殘留路徑(按實際安裝路徑調整)
rd /s /q "C:\Program Files\MySQL\MySQL Server 8.0"
rd /s /q "C:\ProgramData\MySQL\MySQL Server 8.0"
rd /s /q "C:\Users\<用戶名>\AppData\Roaming\MySQL"
# 數據目錄若非默認位置,手動備份後刪除
打開 regedit,依次定位並刪除以下鍵值(含子鍵):
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQLHKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQLHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQLHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL80(服務名對應)HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB / HKEY_LOCAL_MACHINE\SOFTWARE\MySQLHKEY_CURRENT_USER\SOFTWARE\MySQL AB操作前請導出備份: 右鍵鍵值 → 「導出」保存 .reg 文件,防誤刪系統關鍵項。

sc query MySQL80 返回「指定的服務不存在作為已安裝的服務」my.ini、mysqld.exe 無結果MySQL 僅剩無關項(如 ODBC 驅動)$svc = "MySQL80"
Stop-Service $svc -ErrorAction SilentlyContinue
sc.exe delete $svc
Remove-Item "C:\Program Files\MySQL\MySQL Server 8.0" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "C:\ProgramData\MySQL\MySQL Server 8.0" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "HKLM:\SYSTEM\CurrentControlSet\Services\$svc" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "HKLM:\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "HKLM:\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "HKLM:\SOFTWARE\MySQL" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "HKLM:\SOFTWARE\MySQL AB" -Recurse -Force -ErrorAction SilentlyContinue
Write-Host "MySQL 徹底清理完成" -ForegroundColor Green
「控制面板卸載 ≠ 徹底卸載」。服務移除 → 程式卸載 → 文件清理 → 註冊表掃除 四步缺一不可。建議養成「安裝前快照、卸載後驗證」習慣,避免版本切換時的幽靈故障。