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

MySQL Root 密碼修改三大標準方法:SET PASSWORD、mysqladmin、UPDATE user 表

     編輯:MySQL 資料庫相關知識

方法一:SET PASSWORD 語句(推薦,SQL 標準)

mysql -u root -p
-- 進入 mysql> 提示符
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPass123!');
-- 5.7.6+ / 8.0
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
FLUSH PRIVILEGES;

優點:純 SQL、可在應用程式/腳本中執行、支援主機通配符批量修改。

方法二:mysqladmin 命令列工具(最快,適合自動化)

# 已知舊密碼
mysqladmin -u root -p'old_pass' password 'NewPass123!'

# 無舊密碼(跳過權限模式下)
mysqladmin -u root password 'NewPass123!'

優點:無需進入互動 Shell、適合 Shell 腳本/Ansible 自動化。

方法三:直接 UPDATE mysql.user 表(適用忘記密碼/舊版)

mysql -u root -p
USE mysql;
-- 5.7.6+ / 8.0
UPDATE user SET authentication_string = PASSWORD('NewPass123!') WHERE User = 'root' AND Host = 'localhost';
-- 5.7.5 及更早
UPDATE user SET password = PASSWORD('NewPass123!') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

注意:PASSWORD() 在 8.0.11 棄用,建議改用 ALTER USER。

多主機帳號同步修改

-- 修改所有 root 帳號
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPass123!');
SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('NewPass123!');
SET PASSWORD FOR 'root'@'%' = PASSWORD('NewPass123!');
-- 或
ALTER USER 'root'@'localhost', 'root'@'127.0.0.1', 'root'@'%' IDENTIFIED BY 'NewPass123!';

驗證與後續

  1. mysql -u root -p'NewPass123!' -e "SELECT 1;" 確認生效。
  2. 更新應用配置檔、連線池密碼。
  3. 若使用複寫,同步修改從庫 root 密碼(或使用專用複寫帳號)。

版本差異速查表

版本密碼欄位推薦語句PASSWORD()
5.6 / 5.7.5-passwordSET PASSWORD / UPDATE支援
5.7.6+authentication_stringALTER USER / SET PASSWORD支援但棄用
8.0authentication_stringALTER USER移除

安全建議

  • 密碼複雜度:≥12 字元,大小寫+數字+特殊符號。
  • 禁止 root@'%',僅保留 localhost/127.0.0.1/管理網段。
  • 定期輪換(90 天),使用密碼管理器儲存。
  • 啟用 validate_password 元件強制策略。

掌握三種修改方式,應對各種場景遊刃有餘。

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