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

MySQL Root 密碼修改全方案:知密碼、忘密碼、命令行、SQL 三大場景

     編輯:MySQL 資料庫相關知識

場景一:已知當前 Root 密碼

方法 1:SET PASSWORD(推薦,5.7.6+)

mysql -uroot -p
mysql> SET PASSWORD = 'NewStrongPass#2024';
mysql> FLUSH PRIVILEGES;

方法 2:UPDATE mysql.user 表(通用)

mysql -uroot -p
mysql> USE mysql;
mysql> UPDATE user SET authentication_string=PASSWORD('NewStrongPass#2024') WHERE User='root';
mysql> FLUSH PRIVILEGES;

注意:MySQL 5.7+ 密碼列為 authentication_string,5.6 為 password。

方法 3:mysqladmin 命令行(腳本友好)

mysqladmin -uroot -p'oldpass' password 'NewStrongPass#2024'
# 警告:命令行明文密碼有安全風險,生產環境慎用

場景二:忘記 Root 密碼(跳過授權表啟動)

步驟 1:停止 MySQL 服務

systemctl stop mysqld
# 或 service mysqld stop

步驟 2:跳過授權表啟動

mysqld_safe --skip-grant-tables --skip-networking --user=mysql &
# --skip-grant-tables: 禁用權限檢查
# --skip-networking: 僅本地連接,安全隔離
# &: 後台運行

步驟 3:無密碼登錄修改密碼

mysql -uroot mysql
mysql> UPDATE user SET authentication_string=PASSWORD('NewStrongPass#2024') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

步驟 4:正常重啟服務

pkill mysqld_safe
systemctl start mysqld

步驟 5:驗證新密碼

mysql -uroot -p'NewStrongPass#2024' -e "SELECT VERSION();"

場景三:MySQL 8.0+ 特殊處理

MySQL 8.0 默認使用 caching_sha2_password 插件,修改密碼語法:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass#2024';
# 或兼容模式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewStrongPass#2024';

遠程登錄授權(常見配套需求)

-- 創建遠程 root(不推薦,建議創建專用運維賬號)
CREATE USER 'root'@'%' IDENTIFIED BY 'NewStrongPass#2024';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

-- 生產環境推薦:專用運維賬號 + 限制 IP 段
CREATE USER 'dba'@'10.0.0.%' IDENTIFIED BY 'DbaPass#2024';
GRANT ALL PRIVILEGES ON *.* TO 'dba'@'10.0.0.%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

安全加固清單

  1. 密碼策略:長度 ≥16、大小寫+數字+特殊字符、定期輪換(90天)
  2. 禁用 root@%,僅允許 root@localhost
  3. 刪除匿名用戶:DELETE FROM mysql.user WHERE User='';
  4. 刪除 test 庫:DROP DATABASE test; DELETE FROM mysql.db WHERE Db='test%';
  5. 啟用密碼驗證插件:validate_password 強制複雜度
  6. 審計日誌:audit_log 記錄所有連接/查詢

總結

場景核心命令適用版本
知密碼SET PASSWORD / UPDATE user / mysqladmin全版本
忘密碼mysqld_safe --skip-grant-tables → UPDATE user全版本
MySQL 8.0ALTER USER ... IDENTIFIED BY8.0+

掌握三大場景修改密碼流程,配合安全加固清單,即可應對所有 MySQL Root 密碼管理需求。

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