首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 忘記 Root 密碼與 10061 連線錯誤完整解決方案

     編輯:MySQL 資料庫相關知識

MySQL 兩大經典運維痛點:Root 密碼遺忘重置、Can't connect to MySQL server on 'localhost' (10061) 連線失敗。本文整理官方標準流程與實戰排查清單,涵蓋 Linux/Windows 双平台。

一、Root 密碼遺忘標準重置流程 (通用)

  1. 停止服務: systemctl stop mysqld (Linux) / 服務管理器停止 (Windows)
  2. 跳過權限啟動:
    # Linux 前台啟動 (另開終端)
    mysqld_safe --skip-grant-tables --skip-networking &
    
    # Windows 命令列 (以管理員身份)
    mysqld --skip-grant-tables --skip-networking
    
  3. 無密碼登入: mysql -u root
  4. 修改密碼:
    -- MySQL 5.7 / 8.0 (推薦)
    USE mysql;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!';
    FLUSH PRIVILEGES;
    
    -- 兼容舊版 (5.6 及以下)
    UPDATE user SET authentication_string = PASSWORD('NewStrongPass123!') WHERE User = 'root' AND Host = 'localhost';
    FLUSH PRIVILEGES;
    
  5. 正常重啟: systemctl restart mysqld / 重啟 Windows 服務
  6. 驗證: mysql -u root -p'NewStrongPass123!'

二、錯誤 10061 連線失敗完整排查清單

Can't connect to MySQL server on 'localhost' (10061) 表示 TCP 連線被拒絕,通常為服務未啟動、埠衝突、配置錯誤、防火牆或系統補丁導致。

1. 核心快速檢查 (Windows)

步驟命令/操作預期結果
服務狀態services.msc → MySQL → 狀態「正在執行」若停止 → 啟動;若啟動失敗 → 查看事件檢視器
埠監聽netstat -ano | findstr 3306顯示 LISTENING 且 PID 對應 mysqld
配置檔檢查 my.ini [mysqld] 區段 port=3306、bind-address=0.0.0.0無語法錯誤、路徑正確
防火牆入站規則允許 TCP 3306或暫時關閉防火牆測試
Hosts 檔C:\Windows\System32\drivers\etc\hosts 含 127.0.0.1 localhost無異常重導向

2. 進階修復方案 (Windows)

-- 方案 A:重建服務 (針對服務損壞)
mysqld --remove
mysqld --install
net start mysql

-- 方案 B:刪除 my.ini 讓安裝程式重建 (謹慎!先備份)
del C:\Windows\my.ini
del C:\ProgramData\MySQL\MySQL Server 5.x\my.ini
-- 以管理員身份執行安裝目錄 bin\mysqld.exe --install

-- 方案 C:直接執行 mysqld.exe 排查啟動錯誤
cd "C:\Program Files\MySQL\MySQL Server 5.x\bin"
mysqld --console
-- 觀察控制台輸出錯誤訊息

3. 磁碟空間與配置檢查 (通用)

  • df -h / 磁碟管理 → 確保資料目錄分區有足夠剩餘空間 (建議 >20%)
  • 檢查 my.cnf/my.ini 中 datadir、basedir、tmpdir 路徑存在且權限正確 (MySQL 用戶可讀寫)
  • InnoDB 日誌檔案大小變更需刪除 ib_logfile* 重啟重建

4. 經典補丁衝突案例 (Windows Server)

現象: 安裝微軟 9 月補丁 KB967723 (TCP/IP 更新) 後,重啟伺服器導致 MySQL 10061。

原因: 補丁修改 TCP/IP 協議棧行為,影響 MySQL 埠綁定/監聽。

臨時解法: 控制台 → 程式和功能 → 檢視已安裝的更新 → 解除安裝 KB967723 → 重啟伺服器。

長期建議: 測試環境驗證補丁相容性後再推生產;關注 MySQL 官方釋出的相容性修復版本。

5. 虛擬主機/雲資料庫用戶

  1. 確認控制台顯示「運行中」
  2. 2. 核對連線資訊:Host (通常非 localhost、為內網 IP)、Port、用戶名、密碼、白名單 IP 3. 聯繫雲廠商技術支援,提供錯誤碼與時間點查詢後端日誌

三、預防性運維建議

  1. 密碼管理:使用密碼管理器儲存 Root 密碼,定期輪換並記錄。
  2. 監控告警:部署 netstat -tlnp | grep 3306 或 Prometheus mysqld_exporter 監控埠存活、服務狀態。
  3. 備份驗證:定期演練 --skip-grant-tables 重置流程,確保團隊熟悉操作。
  4. 補丁管理:建立補丁測試流程,生產環境延遲 1-2 週打補丁。

掌握這兩大經典故障的標準化處理流程,能讓 MySQL 運維從「慌亂救火」轉為「有序處置」,大幅縮短 MTTR (平均修復時間)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved