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

MySQL 修改 root 密碼四大方法(含忘記密碼強制重置)

     編輯:MySQL 綜合教學

MySQL 修改 root 密碼四大方法(含忘記密碼強制重置)

場景一:已知舊密碼,正常修改

方法 1:SET PASSWORD(推薦 5.7+)

mysql -u root -p
SET PASSWORD = 'NewPass123';  -- 5.7.6+ 語法
-- 或
SET PASSWORD FOR 'root'@'localhost' = 'NewPass123';
FLUSH PRIVILEGES;

方法 2:UPDATE mysql.user 表

mysql -u root -p
USE mysql;
UPDATE user SET authentication_string = PASSWORD('NewPass123') WHERE User = 'root';
FLUSH PRIVILEGES;

方法 3:mysqladmin 命令列工具

mysqladmin -u root -p'oldpwd' password 'NewPass123'
# 注意:-p 與舊密碼之間無空格

場景二:忘記 root 密碼,強制重置

通用步驟(Linux/Windows)

  1. 停止服務
    Linux: systemctl stop mysqld / service mysql stop
    Windows: net stop mysql
  2. 啟動跳過權限模式
    Linux: mysqld_safe --skip-grant-tables --skip-networking &
    Windows: 編輯 my.ini 在 [mysqld] 加 skip-grant-tables,再 net start mysql
  3. 免密登入並更新
    mysql -u root
    USE mysql;
    UPDATE user SET authentication_string = PASSWORD('NewPass123') WHERE User = 'root';
    FLUSH PRIVILEGES;
    EXIT;
  4. 恢復正常模式並重啟
    移除 skip-grant-tables,重啟服務。

MySQL 8.0+ 特別說明

  • PASSWORD() 函數已移除,推薦用 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123';。
  • 若在 skip-grant-tables 模式下無法用 ALTER USER,可手動計算 SHA256 雜湊更新 authentication_string,但極不推薦,建議升級客戶端工具後用 ALTER USER。

驗證修改成功

mysql -u root -p'NewPass123' -e "SELECT USER();"

安全提醒

  • skip-grant-tables 期間**任何人可免密登入**,務必加 --skip-networking 限制本地訪問,並盡快恢復。
  • 生產環境修改 root 密碼前,確認所有應用配置已同步更新,避免服務中斷。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved