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

MySQL 修改密碼六大方法全解析:phpMyAdmin、mysqladmin、SQL 語句與權限刷新

     編輯:MySQL 資料庫相關知識

前提

修改密碼通常需要 root 權限或操作 mysql.user 表權限。普通用戶需請求管理員協助。

方法對比表

方法適用場景需 FLUSH PRIVILEGES需 PASSWORD()可清空密碼備註
1. phpMyAdmin圖形界面,直觀自動處理手動勾選可操作 mysql.user 表
2. mysqladmin命令行快速改密自動自動不可mysqladmin -u root -p password 'newpass'
3. INSERT INTO user創建新用戶並設密必須必須可等同創建用戶
4. REPLACE INTO user覆蓋創建/更新用戶必須必須可用戶存在則更新
5. SET PASSWORDSQL 標準語法改密自動必須可SET PASSWORD FOR 'user'@'host' = PASSWORD('pass')
6. GRANT ... IDENTIFIED BY授權同時設密自動自動(明文即可)可GRANT USAGE ON *.* TO 'user'@'host' IDENTIFIED BY 'pass'

關鍵操作示例


# 2. mysqladmin(最常用)
mysqladmin -u root -p password 'newpass'
# 輸入舊密碼 → 完成

# 5. SET PASSWORD(SQL 標準)
SET PASSWORD FOR 'jeffrey'@'%' = PASSWORD('biscuit');
# 無需 FLUSH PRIVILEGES

# 6. GRANT(最靈活,明文密碼)
GRANT USAGE ON *.* TO 'jeffrey'@'%' IDENTIFIED BY 'biscuit';
# 無需 PASSWORD(),無需 FLUSH

重要提醒

  • MySQL 的 PASSWORD() 加密算法 ≠ 系統 Unix crypt(),不可混淆。
  • 直接操作 mysql.user 表(方法 3/4)必須執行 FLUSH PRIVILEGES; 使內存權限表生效。
  • 方法 2/5/6 由服務端自動處理權限刷新。
  • mysqladmin 無法將密碼設置為空字符串。
  • 5.7.6+ PASSWORD() 棄用,8.0 移除,推薦 ALTER USER 'user'@'host' IDENTIFIED BY 'pass'。

遺忘 root 密碼緊急重置


# 1. 停止服務
systemctl stop mysqld

# 2. 跳過授權表啟動
mysqld_safe --skip-grant-tables --skip-networking &

# 3. 無密碼登錄修改
mysql -u root
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';
# 或舊版
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('newpass') WHERE User='root';
mysql> FLUSH PRIVILEGES;

# 4. 正常重啟
systemctl restart mysqld
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved