首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 密碼重置完整指南:忘記 Root 密碼怎麼辦?

     編輯:MySQL 綜合教學

前言

在資料庫管理工作中,忘記 MySQL root 密碼是常見情況。無論是剛接手新伺服器,還是長時間未登入導致遺忘,掌握正確的重置流程至關重要。本文將詳細介紹 Windows 和 Linux 環境下 MySQL 密碼重置的標準方法,助您快速恢復資料庫存取權限。

Windows 環境重置步驟

方法一:跳過權限表啟動法

  1. 以管理員身份開啟命令提示字元,停止 MySQL 服務:
    net stop mysql
  2. 切換至 MySQL 安裝目錄的 bin 資料夾,例如:
    cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
  3. 使用 --skip-grant-tables 參數啟動 MySQL 服務(跳過權限驗證):
    mysqld --skip-grant-tables
  4. 開啟新的命令提示字元視窗,無密碼登入 MySQL:
    mysql -u root
  5. 在 MySQL 命令列中執行以下語句重置密碼(MySQL 8.0+ 語法):
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
  6. 關閉跳過權限表的 MySQL 進程,正常重啟 MySQL 服務:
    net start mysql

方法二:初始化檔案法(適用於 MySQL 5.7+)

  1. 建立文字檔 init.txt,內容為:
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
  2. 停止 MySQL 服務,以初始化檔案啟動:
    mysqld --init-file=C:\init.txt
  3. 重啟服務後即可使用新密碼登入。

Linux 環境重置步驟

通用步驟(適用於 Ubuntu/CentOS/RHEL)

  1. 停止 MySQL 服務:
    systemctl stop mysqld
    或
    service mysql stop
  2. 修改配置檔 /etc/my.cnf 或 /etc/mysql/my.cnf,在 [mysqld] 區段加入:
    skip-grant-tables
  3. 啟動 MySQL 服務:
    systemctl start mysqld
  4. 無密碼登入並重置密碼:
    mysql -u root
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
  5. 移除配置檔中的 skip-grant-tables,重啟服務。

常見問題與注意事項

  • 權限不足:執行重置操作需具備系統管理員/root 權限。
  • 版本差異:MySQL 5.7 以前版本使用 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密碼'); 語法。
  • 安全建議:重置後務必移除 skip-grant-tables 設定,並考慮建立權限較低的應用程式專用帳號。
  • 密碼策略:新密碼需符合 validate_password 元件的長度、複雜度要求。

總結

MySQL 密碼重置的核心原理是暫時繞過權限驗證機制。Windows 環境下推薦使用 --init-file 方法較為乾淨;Linux 環境則透過修改配置檔實現。操作完成後,請務必恢復正常安全設定,並妥善保管新密碼。建議定期更換密碼,並啟用密碼過期策略提升資料庫安全性。

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