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

MySQL 修改 root 密碼四大標準方法:SET PASSWORD、mysqladmin、UPDATE user 表、skip-grant-tables 緊急重置

     編輯:MySQL 綜合教學

MySQL 修改 root 密碼的四種標準姿勢,涵蓋日常運維、腳本自動化、權限表直接操作、忘記密碼緊急重置,附 5.7+/8.0 欄位變更注意事項。

方法一:SET PASSWORD(推薦,語意清晰)

mysql -u root -p
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

方法二:mysqladmin(適合腳本/自動化)

# 首次設定/無舊密碼
mysqladmin -u root password "newpass"

# 已有舊密碼
mysqladmin -u root -p'oldpass' password "newpass"

方法三:UPDATE user 表 + FLUSH PRIVILEGES(底層直擊)

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

方法四:忘記密碼緊急重置(--skip-grant-tables)

# 1. 停止服務
service mysqld stop

# 2. 跳過授權表啟動(建議加 --skip-networking)
mysqld_safe --skip-grant-tables --skip-networking &

# 3. 免密登入並更新
mysql -u root mysql
UPDATE user SET Password = PASSWORD("newpass") WHERE User = 'root';
FLUSH PRIVILEGES;

# 4. 結束臨時進程,正常啟動
killall mysqld
service mysqld start

MySQL 5.7+ / 8.0 關鍵差異

版本密碼欄位更新語句
5.6 及之前PasswordUPDATE user SET Password = PASSWORD('x') ...
5.7authentication_stringUPDATE user SET authentication_string = PASSWORD('x') ...
8.0authentication_stringALTER USER 'root'@'localhost' IDENTIFIED BY 'x';(推薦)

8.0 預設 caching_sha2_password 插件,舊客戶端需指定 mysql_native_password:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpass';

最佳實踐

  • 日常輪換用 SET PASSWORD 或 mysqladmin。
  • 自動化腳本用 mysqladmin(可讀取 stdin 密碼)。
  • 緊急重置後立即檢查 user 表是否有匿名帳號、root@'%' 等風險帳號並清理。

掌握四種方法,應對所有密碼變更場景遊刃有餘。

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