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

MySQL 忘記 Root 密碼?Windows/Linux 完整重置指南

     編輯:MySQL 綜合教學

前言

遺忘 MySQL root 密碼是常見狀況。本文提供 Windows 與 Linux/Unix 兩大平台的完整重置流程,並整理多種修改密碼的替代方案,助你快速恢復存取權限。

核心原理:跳過權限表啟動

透過 --skip-grant-tables 參數啟動 MySQL,暫時繞過權限驗證,進入系統後更新 mysql.user 表的密碼欄位,最後重新啟動服務生效。

Windows 平台重置步驟

1. 停止 MySQL 服務

以系統管理員身分開啟「服務」,停止 MySQL 服務。

2. 以跳過權限模式啟動

開啟命令提示字元,切換至 MySQL bin 目錄(例:C:\mysql\bin):

mysqld-nt --skip-grant-tables
# 或
mysqld --skip-grant-tables
說明: mysqld-nt.exe 為 Windows 服務版本,mysqld.exe 為主控台版本,二擇一即可。

3. 另開視窗重設密碼

方法 A(mysqladmin):

mysqladmin -u root flush-privileges password "newpassword"
mysqladmin -u root -p shutdown

方法 B(SQL 指令,較通用):

mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('新密碼') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> QUIT;

4. 正常重啟服務

關閉跳過權限的執行個體,透過服務管理員或 net start mysql 正常啟動,即可使用新密碼登入。

Linux/Unix 平台重置步驟

1. 以 root 或 mysqld 執行使用者登入

2. 終止現有 mysqld 進程

kill $(cat /var/run/mysqld/mysqld.pid)

3. 跳過權限表啟動

mysqld_safe --skip-grant-tables &

4. 設定新密碼

mysqladmin -u root flush-privileges password "newpassword"

5. 重啟服務

正常啟動 MySQL 服務(如 systemctl start mysqld 或 /etc/init.d/mysql start)。

補充:MySQL 修改密碼的多種語法

-- 1. UPDATE 直修 user 表
UPDATE user SET Password=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;

-- 2. mysqladmin 指令
mysqladmin -u root -p PASSWORD mypasswd

-- 3. SET PASSWORD 語法
SET PASSWORD FOR 'myuser'@'localhost' = PASSWORD('mypasswd');

-- 4. GRANT 重新授權並指定密碼
GRANT USAGE ON *.* TO 'myuser'@'localhost' IDENTIFIED BY 'mypassword';

注意事項

  • MySQL 5.7+ 版本 Password 欄位改名為 authentication_string,SQL 語法需調整。
  • 生產環境建議使用強密碼並限制 root 遠端登入。
  • 重置後務必執行 FLUSH PRIVILEGES 使權限生效。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved