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

MySQL 忘記 Root 密碼?三步驟快速重置超級用戶密碼

     編輯:MySQL 資料庫相關知識

情境:Root 密碼遺失,無法登入 MySQL

只要擁有作業系統的 root 或管理員權限,即可透過跳過權限表啟動 MySQL,進而重置密碼。以下步驟適用於 Linux/Unix 環境(Windows 請參考官方文件)。

重置流程

  1. 停止正在運行的 MySQL 服務
    killall -TERM mysqld

    若使用 systemd:systemctl stop mysqld。

  2. 以跳過權限表模式啟動 MySQL
    mysqld_safe --skip-grant-tables &

    此模式下不檢查權限表,任何人可無密碼登入。建議同時加上 --skip-networking 防止遠程連線。

  3. 無密碼登入並更新密碼
    mysql -u root
    USE mysql;
    UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
    FLUSH PRIVILEGES;
    EXIT;

    注意:MySQL 5.7+ 欄位為 authentication_string,5.6 及之前為 Password。若使用 mysql_native_password 外掛,亦可用 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';。

  4. 正常重啟 MySQL
    killall -TERM mysqld
    systemctl start mysqld  # 或 service mysqld start

    現在即可用新密碼正常登入。

安全提醒

  • 操作完成後,務必移除啟動腳本中的 --skip-grant-tables 參數。
  • 生產環境建議設定 skip-grant-tables 僅在本機啟動時生效,並限制網路存取。
  • 定期輪換 root 密碼,並避免在應用程式中直接使用 root 帳號。

常見問題

更新密碼後仍無法登入?
確認 FLUSH PRIVILEGES; 已執行;檢查 user.Host 欄位是否包含 localhost、127.0.0.1、::1 等實際連線來源。
Windows 環境如何操作?
以管理員身分開啟命令提示字元,停止服務 net stop mysql,再以 mysqld --skip-grant-tables 啟動,後續步驟相同。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved