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

MySQL 修改 Root 密碼完整指南:知舊密碼與忘記密碼兩大場景

     編輯:MySQL 綜合教學

場景一:已知舊密碼 (正常登入情況)

MySQL 5.7.6+ (推薦)

-- 登入後執行
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_strong_password';
FLUSH PRIVILEGES;

舊版本 / 通用語法

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_strong_password');
FLUSH PRIVILEGES;

注意: MySQL 8.0 棄用 PASSWORD() 函數,請使用 ALTER USER。

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

  1. 停止服務:
    systemctl stop mysqld
    # 或
    service mysqld stop
  2. 跳過授權表啟動 (臨時,極度不安全,請在防火牆保護下操作):
    mysqld_safe --skip-grant-tables --skip-networking &
    # --skip-networking 防止遠端連入此無保護實例
  3. 免密登入並修改:
    mysql -u root
    -- 進入 mysql shell 後
    USE mysql;
    -- 5.7/8.0 語法
    UPDATE user SET authentication_string = PASSWORD('new_strong_password') WHERE User = 'root' AND Host = 'localhost';
    -- 8.0.4+ 可能需
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_strong_password';
    FLUSH PRIVILEGES;
    QUIT;
  4. 正常重啟驗證:
    systemctl stop mysqld  # 先殺掉 skip-grant-tables 進程
    systemctl start mysqld
    mysql -u root -p'new_strong_password'

最佳實踐建議

  • 密碼複雜度:≥12 字元,含大小寫、數字、特殊符號。
  • 禁止 root@% 遠端登入,僅允許 root@localhost 或特定 IP。
  • 使用密碼管理器儲存,避免硬編碼在腳本/配置檔。
  • 定期輪換密碼 (如 90 天)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved