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

MySQL 修改 root 密碼四大方法總結(含忘記密碼重置)

     編輯:MySQL 綜合教學

MySQL 修改 root 密碼:四種常用方法與遺忘密碼重置

整理四種修改 MySQL root 密碼的方式,涵蓋正常修改與跳過權限表的緊急重置,適用 MySQL 5.6+(其他版本大同小異)。

方法一:SET PASSWORD 語句(需登錄)

mysql -u root -p
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

方法二:mysqladmin 命令行工具

# 首次設密(原無密碼)
mysqladmin -u root password "newpass"

# 已有密碼時修改
mysqladmin -u root -p oldpass password "newpass"

方法三:直接 UPDATE mysql.user 表(需登錄)

mysql -u root -p
mysql> USE mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;

方法四:忘記 root 密碼時 -- 跳過授權表重置

  1. 停止 MySQL 服務:systemctl stop mysqld 或 net stop mysql。
  2. 以跳過授權表模式啟動:
    mysqld_safe --skip-grant-tables --skip-networking &

    --skip-networking 禁止網絡連接,提升安全性。

  3. 無密碼登錄:mysql -u root mysql。
  4. 更新密碼並刷新權限:
    UPDATE user SET Password = PASSWORD('newpass') WHERE User = 'root';
    FLUSH PRIVILEGES;
  5. 關閉跳過授權的實例,正常啟動 MySQL 服務。

MySQL 5.7.6+ / 8.0 注意事項

  • Password 列改名為 authentication_string,更新語句需調整:UPDATE user SET authentication_string = PASSWORD('newpass') WHERE User = 'root';
  • 8.0 默認認證插件為 caching_sha2_password,若客戶端不支援,可改用 mysql_native_password:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpass';

安全提示

  • 生產環境嚴禁空密碼、弱密碼。
  • 修改後驗證:mysql -u root -p'newpass' -e "SELECT 1;"。
  • 權限表操作後務必 FLUSH PRIVILEGES; 或重啟服務生效。

總結

正常場景用 SET PASSWORD 或 mysqladmin;忘記密碼用 --skip-grant-tables 緊急重置。掌握兩套流程,應對所有密碼管理場景。

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