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

MySQL Root 密碼重置完整指南(Windows/Linux 通用)

     編輯:MySQL 綜合教學

適用場景

  • 忘記 Root 密碼無法登錄
  • 需要定期輪換 Root 密碼
  • 安全審計要求重置默認密碼

通用重置流程(四步法)

步驟 1:修改配置文件啟用跳過授權表

系統配置文件路徑修改內容
Windows%mysql_installdir%\my.ini在 [mysqld] 區塊添加 skip-grant-tables
Linux/etc/my.cnf在 [mysqld] 區塊添加 skip-grant-tables

步驟 2:重啟 MySQL 服務

# Windows
net stop mysql
net start mysql

# Linux (SysVinit)
/etc/init.d/mysqld restart

# Linux (Systemd)
systemctl restart mysqld

步驟 3:無密碼登錄並更新密碼

mysql -uroot -p mysql
# 直接回車,無需密碼進入

# 更新密碼(MySQL 5.7+ 使用 authentication_string)
UPDATE user SET authentication_string=PASSWORD('NewPass123!') WHERE user='root';
# 或舊版本
UPDATE user SET password=PASSWORD('NewPass123!') WHERE user='root';

FLUSH PRIVILEGES;
QUIT;

步驟 4:還原配置並重啟服務

  1. 刪除配置文件中的 skip-grant-tables
  2. 重啟 MySQL 服務
  3. 使用新密碼驗證登錄

安全加固建議

  • 密碼策略:長度 ≥12 位,包含大小寫、數字、特殊字符
  • 禁用 Root 遠程登錄:DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
  • 創建專用應用賬戶,最小權限原則
  • 啟用密碼過期策略:ALTER USER 'root'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;

常見問題排查

報錯「Table 'mysql.user' doesn't exist」
數據目錄損壞或未初始化,需重新運行 mysql_install_db
密碼修改不生效
確認已執行 FLUSH PRIVILEGES 且配置文件已還原重啟
Windows 服務無法啟動
檢查事件查看器,常見為端口衝突或配置語法錯誤
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved