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

XAMPP 環境下 MySQL root 密碼遺忘與重置實戰紀錄

     編輯:MySQL 資料庫相關知識

案例背景

  • 環境:XAMPP 1.6.7 (Windows)
  • 症狀:客戶遺忘 root 密碼,mysqld_safe 無法啟動,官方重置流程失效。
  • 發現:XAMPP 預設安裝 root 密碼為空字串(無密碼)。

嘗試過程與坑點

  1. 重裝 XAMPP:需重新部署應用與還原資料,成本高。
  2. 替換 var/mysql 目錄:密碼變空可登入,但修改密碼報 user table is read only。
  3. 關鍵突破: 執行 mysqladmin -u root flush-tables 釋放鎖定,並確保 var/mysql 目錄寫入權限,即可正常 SET PASSWORD。

標準重置步驟(適用 XAMPP / Windows)

# 1. 停止 MySQL 服務 (XAMPP Control Panel)
# 2. 命令列以管理員身分執行
cd \xampp\mysql\bin
mysqld --skip-grant-tables --skip-networking

# 3. 新開視窗,無密碼登入
mysql -u root

# 4. 更新密碼 (MySQL 5.7+ 使用 authentication_string)
UPDATE mysql.user SET authentication_string=PASSWORD('新密碼') WHERE user='root';
FLUSH PRIVILEGES;
EXIT;

# 5. 關閉跳過權限的 mysqld,正常啟動服務
# 6. 驗證新密碼
mysql -u root -p

後續處理

  • 若原有其他帳號,需重建並授權。
  • 建議將 config.inc.php (phpMyAdmin) 同步更新密碼。
  • 生產環境務必修改預設空密碼,並限制 root@localhost 僅本地登入。

教訓總結

  1. XAMPP 預設無密碼,初次安裝即應設定強密碼。
  2. user table is read only 通常因 FLUSH TABLES 未執行或目錄權限不足。
  3. Windows 下 mysqld_safe 不存在,直接用 mysqld --skip-grant-tables。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved