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

MySQL 修改使用者密碼與忘記 Root 密碼重置完整指南

     編輯:MySQL 資料庫相關知識

一、正常修改密碼(已知舊密碼)

-- 1. 登入 MySQL
mysql -u root -p

-- 2. 選擇 mysql 系統庫
USE mysql;

-- 3. 修改密碼(MySQL 5.7+ 使用 authentication_string)
UPDATE `user` SET `authentication_string` = PASSWORD('新密碼') WHERE `User` = 'root';

-- 4. 刷新權限生效
FLUSH PRIVILEGES;

MySQL 8.0 建議用:ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';

二、忘記 Root 密碼:跳過權限表重置

  1. 停止 MySQL 服務
    systemctl stop mysqld 或 service mysql stop
  2. 編輯配置檔(my.cnf / my.ini),在 [mysqld] 下加入:
    skip-grant-tables
  3. 啟動 MySQL(此時無需密碼即可登入)
    systemctl start mysqld
  4. 免密登入並修改密碼
    mysql -u root
    USE mysql;
    -- 5.7+
    UPDATE `user` SET `authentication_string` = PASSWORD('新密碼') WHERE `User` = 'root';
    -- 8.0
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
    FLUSH PRIVILEGES;
    
  5. 移除 skip-grant-tables 並重啟
    註解掉該行,systemctl restart mysqld,即可用新密碼正常登入。

三、補充:MySQL 8.0 密碼策略調整

若新密碼不符合預設驗證策略(長度、大小寫、特殊字符),可暫時降低:

SET GLOBAL validate_password.length = 4;
SET GLOBAL validate_password.policy = LOW;
-- 修改完密碼後可改回

四、安全建議

  • 生產環境禁用 root 遠程登入,建立專用運維帳號並限制來源 IP。
  • 定期輪換密碼,使用密碼管理工具儲存。
  • 啟用 validate_password 元件強制複雜度。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved