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

MySQL 修改 root 密碼:知舊密碼與忘記密碼兩種情境解法

     編輯:MySQL 資料庫相關知識

MySQL 修改 root 密碼分「知道舊密碼」與「完全忘記」兩種情境,處理方式截然不同。

情境一:知道目前密碼 (可正常登入)

-- 進入 MySQL 命令列後執行
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpasswd');
FLUSH PRIVILEGES;

或使用 mysqladmin:

mysqladmin -u root -p'oldpass' password 'newpass'

情境二:忘記 root 密碼 (需跳過權限表)

  1. 停止 MySQL 服務:service mysql stop (Linux) 或「服務」管理員停止 (Windows)。
  2. 以 --skip-grant-tables 啟動:
    mysqld_safe --skip-grant-tables & (Linux)
    或在 my.ini `[mysqld]` 區段加 `skip-grant-tables` 後重啟 (Windows)。
  3. 無密碼登入:mysql -u root。
  4. 更新密碼:
    USE mysql;
    UPDATE user SET authentication_string=PASSWORD('newpass') WHERE User='root' AND Host='localhost';
    FLUSH PRIVILEGES;
  5. 移除 skip-grant-tables,正常重啟 MySQL 服務。

MySQL 5.7+ 注意

5.7 起 `password` 欄位改名為 `authentication_string`,更新語法請用上述欄位名;8.0 另需注意 `caching_sha2_password` 預設驗證外掛。

安全建議

  • 修改後立即執行 mysql_secure_installation 移除匿名帳號、禁止 root 遠端登入、移除測試資料庫。
  • 生產環境建議建立專用應用程式帳號,最小權限原則,不直接使用 root。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved