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

MySQL 忘記 root 密碼?Windows/Linux 雙平台重置圖文教程

     編輯:MySQL 綜合教學

MySQL 忘記 root 密碼?Windows/Linux 雙平台重置圖文教程

root 密碼遺失是常見運維場景。核心思路:跳過權限表啟動 MySQL(--skip-grant-tables) → 免密登錄 → 更新 mysql.user 表 → 刷新權限 → 正常重啟。以下提供 Windows 與 Linux 兩套完整步驟。

方法一:通用步驟(適用 Windows/Linux)

  1. 停止 MySQL 服務:
    • Windows:net stop mysql 或任務管理器結束 mysqld.exe。
    • Linux:systemctl stop mysqld 或 /etc/init.d/mysql stop。
  2. 以跳過授權模式啟動:
    • Windows(進入 bin 目錄):mysqld --skip-grant-tables --console(保持窗口開啟)。
    • Linux:mysqld_safe --skip-grant-tables --skip-networking &(後台運行,--skip-networking 禁止遠程連接提升安全)。
  3. 免密登錄並修改密碼:
    mysql -u root -p
    -- 直接回車,無需密碼
    MariaDB [(none)]> USE mysql;
    MariaDB [mysql]> UPDATE user SET authentication_string=PASSWORD('NewPass123!') WHERE User='root';
    -- MySQL 5.7+ 字段為 authentication_string,5.6 為 password
    MariaDB [mysql]> FLUSH PRIVILEGES;
    MariaDB [mysql]> EXIT;
  4. 正常重啟服務:關閉跳過授權的進程,啟動常規服務,用新密碼登錄驗證。

方法二:Windows 初始化文件法(適用 5.7+)

  1. 新建文本文件 C:\mysql-init.txt,內容:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
  1. 停止服務,命令行啟動:mysqld --init-file=C:\\mysql-init.txt --console。
  2. 服務啟動後密碼已重置,關閉窗口,正常啟動服務。

方法三:Linux 專用 - 利用 debian-sys-maint 帳戶(Debian/Ubuntu)

  1. 查看 /etc/mysql/debian.cnf 獲取 user、password(通常為 debian-sys-maint)。
  2. mysql -u debian-sys-maint -p 登錄,執行上述 UPDATE user ... FLUSH PRIVILEGES;。

常見坑點提醒

  • MySQL 8.0+ 密碼插件預設為 caching_sha2_password,若客戶端不支援需改回 mysql_native_password:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPass';。
  • 修改後務必 FLUSH PRIVILEGES;,否則新密碼不生效。
  • 生產環境操作前建議備份 mysql 系統庫。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved