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

MySQL Root 密碼重置與找回三大法寶

     編輯:MySQL 資料庫相關知識

方法一:標準 SQL 修改 (已知舊密碼)


mysql -u root -p
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('newpass') WHERE User='root';
mysql> FLUSH PRIVILEGES;

方法二:跳過授權表啟動 (通用、最常用)

步驟

  1. 確保伺服器安全狀態 (關防火牆、停應用、最好拔網線)
  2. 編輯 /etc/my.cnf,[mysqld] 下加入 skip-grant-tables
  3. 重啟 MySQL:service mysqld restart
  4. 無密碼登入:mysql -u root
  5. 修改密碼:
    UPDATE user SET Password=PASSWORD('newpass') WHERE User='root'; FLUSH PRIVILEGES;
  6. 移除 skip-grant-tables,重啟 MySQL 恢復正常

方法三:mysqld_safe --skip-grant-tables 直接啟動 (無需改配置檔)


# 停止服務
service mysqld stop
# 或 killall mysqld

# 以跳過授權模式啟動 (背景執行)
mysqld_safe --skip-grant-tables &

# 另開終端無密碼登入修改密碼
mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> QUIT

# 正常重啟
service mysqld restart

適用於無 safe_mysqld 的系統 (如 Ubuntu apt 安裝),改用 mysqld --skip-grant-tables &。

注意事項

  • 修改密碼後必須 FLUSH PRIVILEGES 才生效
  • 生產環境操作前務必備份 mysql.user 表
  • 完成後檢查匿名用戶、測試帳號是否殘留,必要時清理
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved