首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL Root 密碼重置六大法 + 忘記密碼終極解決方案(圖文)

     編輯:MySQL 資料庫相關知識

前提:擁有 MySQL 權限的正常修改場景

方法一:phpMyAdmin 圖形界面(最簡單)

打開 phpMyAdmin → 選擇 mysql 數據庫 → 編輯 user 表 → 修改 Password 字段,**務必選擇 PASSWORD() 函數** → 執行。

方法二:mysqladmin 命令行工具


mysqladmin -u root -p password 'newpass'
# 提示輸入舊密碼,回車後生效

將 root 換為其他用戶名可修改自身密碼。**無法清空密碼,且需 mysqladmin 能連接服務器。**

方法三:INSERT INTO user 表(MySQL 官方示例)


INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'jeffrey', PASSWORD('biscuit'));
FLUSH PRIVILEGES;

本質是新增用戶,**必須用 PASSWORD() 加密,必須 FLUSH PRIVILEGES**。

方法四:REPLACE INTO user 表


REPLACE INTO mysql.user (Host, User, Password) VALUES ('%', 'jeffrey', PASSWORD('biscuit'));
FLUSH PRIVILEGES;

若用戶已存在則替換,否則插入。

方法五:SET PASSWORD 語句(推薦)


SET PASSWORD FOR 'jeffrey'@'%' = PASSWORD('biscuit');

**必須用 PASSWORD(),無需 FLUSH PRIVILEGES**,語義最清晰。

方法六:GRANT ... IDENTIFIED BY(最通用)


GRANT USAGE ON *.* TO 'jeffrey'@'%' IDENTIFIED BY 'biscuit';

**無需 PASSWORD(),無需 FLUSH PRIVILEGES**,隱式創建用戶並設置密碼。

重要提醒: MySQL 的 PASSWORD() **非** Unix 系統加密算法,不可通用。

場景二:完全忘記 Root 密碼(跳過權限表啟動)

Windows 環境

  1. 打開服務管理器或任務管理器,結束 mysqld-nt.exe / mysqld.exe 進程
  2. CMD 進入 MySQL bin 目錄,啟動跳過權限:mysqld-nt --skip-grant-tables
  3. 另開 CMD,無密碼登錄:mysql
  4. 執行重置:
    
    USE mysql;
    UPDATE user SET Password = PASSWORD('new_pass') WHERE User = 'root';
    FLUSH PRIVILEGES;
    EXIT;
    
  5. 任務管理器殺掉 mysqld-nt 進程
  6. 正常啟動 MySQL 服務,新密碼生效

Linux 環境


# 1. 停止運行中的 MySQL
killall -TERM mysqld

# 2. 跳過權限表啟動
bin/safe_mysqld --skip-grant-tables &

# 3. 無密碼登錄並修改
mysql
USE mysql;
UPDATE user SET Password = PASSWORD('new_pass') WHERE User = 'root';
FLUSH PRIVILEGES;
EXIT;

# 4. 重新啟動正常服務
killall -TERM mysqld
# 正常啟動腳本
service mysqld start
# 或
bin/mysqld_safe &

驗證


mysql -uroot -p'new_pass'
# 成功登錄即生效
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved