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

MySQL root 密碼忘記?三種修改密碼方式與跳過授權表啟動救援全流程

     編輯:MySQL 綜合教學

MySQL root 密碼忘記?三種修改密碼方式與跳過授權表啟動救援全流程

救援核心流程

  1. 停止 MySQL 服務:systemctl stop mysqld / service mysql stop
  2. 跳過授權表啟動:mysqld --skip-grant-tables &
  3. 免密登入:mysql -u root (直接回車)
  4. 修改密碼(三選一)
  5. 刷新權限:FLUSH PRIVILEGES;
  6. 重啟 MySQL 正常模式

三種修改密碼方式

方式一:直接更新 mysql.user 表(通用、直觀)

-- 修改當前登入用戶密碼
SET PASSWORD = PASSWORD('NewPass123!');

-- 修改指定用戶@主機 (需該賬號存在)
SET PASSWORD FOR 'bob'@'%.example.org' = PASSWORD('NewPass123!');

方式三:GRANT ... IDENTIFIED BY(兼容舊版)

-- 8.0 預設 caching_sha2_password,舊客端可能不支援
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPass123!';
FLUSH PRIVILEGES;

常見救援坑點

安全建議

  • 生產環境禁用 root 遠程登入:DELETE FROM mysql.user WHERE user='root' AND host!='localhost';
  • 使用密碼管理器儲存複雜密碼
  • 定期輪換密碼並審計 mysql.user
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
現象原因解決
mysqld --skip-grant-tables 前台卡住預設前台運行,非報錯加 & 後台,或新開終端登入
ERROR 2003 (HY000): Can't connect未啟動、端口不對、socket 路徑錯netstat -anpt | grep 3306、指定 -S /var/lib/mysql/mysql.sock
修改後仍無法登入未 FLUSH PRIVILEGES、密碼插件不匹配必須刷新、檢查 plugin 列
權限表損壞誤刪 mysql 數據庫mysql_install_db / mysqld --initialize 重建