萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL root 密碼遺忘?Windows 與 Linux 環境下的重置全攻略

Windows 平台重置步驟

  1. 以管理員身份登入 Windows。
  2. 通過「服務」管理工具或任務管理器停止 MySQL 服務。
  3. 創建文本文件 C:\mysql-init.txt,內容為單行 SQL:
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
  4. 打開命令提示符,進入 MySQL bin 目錄(如 C:\mysql\bin)。
  5. 啟動服務並載入初始化文件:
    mysqld-nt --init-file=C:\mysql-init.txt
    若使用安裝精靈安裝,需指定配置文件:
    mysqld-nt --defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini" --init-file=C:\mysql-init.txt
  6. 服務啟動後,停止 MySQL,再以正常模式重新啟動。
  7. 使用新密碼登入驗證。

Linux/Unix 平台重置步驟

  1. 以 root 或啟動 mysqld 的用戶身份登入系統。
  2. 找到 .pid 文件(常見路徑:/var/lib/mysql/、/var/run/mysqld/、/usr/local/mysql/data/),文件名通常為 主機名.pid。
    執行 kill `cat /path/to/host_name.pid` 停止服務(注意反引號)。
  3. 在用戶主目錄創建 ~/mysql-init 文件,內容同 Windows:
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
  4. 以特殊參數啟動:
    mysqld_safe --init-file=~/mysql-init &
  5. 確認可用新密碼登入後,刪除 ~/mysql-init 文件。

通用方案:跳過授權表啟動

適用於所有平台,但安全性較低(臨時允許無密碼登入):

  1. 停止 MySQL,以 --skip-grant-tables --user=root 啟動(Windows 可省略 --user=root)。
  2. 無密碼登入:mysql -u root
  3. 執行更新語句:
    UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
    FLUSH PRIVILEGES;
  4. 重新以正常模式啟動服務,使用新密碼登入。

安全提醒

重置完成後,務必檢查是否存在匿名用戶、遠程 root 登入等風險配置,並執行 mysql_secure_installation 強化安全。

copyright © 萬盛學電腦網 all rights reserved