mysql -u root -p 輸入密碼後窗口直接關閉ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)# 窗口 1: 以管理員身份運行 CMD
cd C:\Program Files\MySQL\MySQL Server 5.x\bin
mysqld --skip-grant-tables --skip-networking
# 窗口 2: 新開 CMD 直接登錄 (無需密碼)
mysql -u root
# 進入後修改密碼
UPDATE mysql.user SET authentication_string=PASSWORD('NewPass123!') WHERE User='root';
FLUSH PRIVILEGES;
EXIT
# 關閉窗口 1 進程 (Ctrl+C),正常啟動服務
net start mysql
開始菜單 → MySQL → MySQL Command Line Client → 輸入正確密碼
若密碼正確仍閃退,大概率是服務未運行 (見現象 B/C)。
# 以管理員身份運行 CMD (關鍵!) net start mysql # 若提示「服務名無效」嘗試完整服務名 net start MySQL57 net start MySQL80
cmd → 右鍵「以管理員身份運行」# 查看 3306 端口佔用 netstat -an | findstr 3306 # Telnet 測試本地連通性 telnet localhost 3306 # 防火牆放行 (管理員 PowerShell) New-NetFirewallRule -DisplayName "MySQL 3306" -Direction Inbound -LocalPort 3306 -Protocol TCP -Action Allow
# 以管理員身份運行 icacls "C:\ProgramData\MySQL\MySQL Server 5.7\Data" /grant "Network Service:(OI)(CI)F" /T # 或根據實際安裝路徑調整,確保 MySQL 服務賬戶有讀寫權限
# 檢查 my.ini 語法錯誤 "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --validate-config # 常見錯誤:datadir 路徑含空格未加引號、innodb_buffer_pool_size 超過物理內存
tasklist | findstr mysqld taskkill /PID/F # 再嘗試 net start mysql
net start mysql (管理員 CMD)Windows 下 MySQL 閃退/連不上 90% 是服務未以管理員權限啟動或防火牆阻斷。養成「CMD 必須以管理員身份運行」習慣,配置防火牆入站規則,密碼重置走 --skip-grant-tables 標準流程,可覆蓋絕大多數場景。