萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 修改 Root 密碼命令大全:命令列、SQL、phpMyAdmin 與忘記密碼救援

場景一:已知舊密碼,正常修改

方法 1:mysqladmin(最簡單)

mysqladmin -u root -p'old_pass' password 'new_pass'

方法 2:SQL 指令(登入 MySQL 後)

-- MySQL 5.7.6+ / 8.0 推薦
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_pass';
ALTER USER 'root'@'%' IDENTIFIED BY 'new_pass';

-- 5.7.6 前 / 通用
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_pass');
SET PASSWORD FOR 'root'@'%' = PASSWORD('new_pass');

-- 或直接更新 user 表(需 FLUSH PRIVILEGES)
UPDATE mysql.user SET authentication_string = PASSWORD('new_pass') 
WHERE User = 'root';
FLUSH PRIVILEGES;

方法 3:phpMyAdmin 圖形介面

  1. 登入 phpMyAdmin → 右上角「用戶帳號」/「權限」
  2. 找到 root @ localhost 和 root @ %
  3. 點擊「編輯權限」→ 「變更密碼」→ 輸入新密碼 → 執行
  4. 重要:修改後需更新 config.inc.php 的 $cfg['Servers'][$i]['password'] 才能繼續用 phpMyAdmin 登入

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

Linux 環境

  1. 編輯 /etc/my.cnf,[mysqld] 下加入 skip-grant-tables
  2. 重啟:systemctl restart mysqld
  3. 免密登入:mysql -u root
  4. 修改密碼:
    USE mysql;
    -- 5.7.6+
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_pass';
    -- 5.7.6 前
    UPDATE user SET authentication_string = PASSWORD('new_pass') WHERE User='root';
    FLUSH PRIVILEGES;
  5. 移除 skip-grant-tables,重啟 MySQL

Windows 環境

  1. 停止 MySQL 服務(服務管理器 / net stop MySQL80)
  2. 建立初始化檔 C:\mysql_init.txt:
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
  3. 命令列啟動(以管理員身分):
    cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
    mysqld --init-file=C:\mysql_init.txt --console
  4. 看到「ready for connections」後 Ctrl+C 停止
  5. 刪除 mysql_init.txt,正常啟動服務:net start MySQL80

場景三:MySQL 8.0 caching_sha2_password 插件相容性

MySQL 8.0 預設使用 caching_sha2_password,舊版驅動可能不支援。若應用連線失敗:

-- 將 root 改為 mysql_native_password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'new_pass';
FLUSH PRIVILEGES;

驗證修改成功

# 新密碼登入測試
mysql -u root -p'new_pass' -e "SELECT USER(), CURRENT_USER();"

# 查看加密插件
SELECT User, Host, plugin FROM mysql.user WHERE User='root';

安全建議

  • 密碼長度 ≥ 12,含大小寫、數字、特殊符號
  • 禁止 root@%,僅允許 root@localhost 或 root@127.0.0.1
  • 建立專用應用帳號,授予最小權限
  • 定期輪換密碼,記錄變更日誌
copyright © 萬盛學電腦網 all rights reserved