Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux MySQL 修改 root 密碼完整指南:三種情境含忘記密碼強制重設

編輯:關於 Linux

MySQL root 密碼管理是資料庫安全基石。本文涵蓋三大情境:知舊密碼在線修改、知舊密碼命令列修改、完全忘記密碼以 --skip-grant-tables 繞過驗證強制重設,並釐清 pkill 導致服務殭屍狀態的常見誤區。

MySQL 密碼修改流程圖

情境一:登入 MySQL 後修改(知舊密碼)

mysql -uroot -p
# 輸入舊密碼
MariaDB [(none)]> USE mysql;
MariaDB [mysql]> UPDATE user SET password=PASSWORD('newpass') WHERE user='root';
MariaDB [mysql]> FLUSH PRIVILEGES;
MariaDB [mysql]> EXIT;

注意:MySQL 5.7+ 欄位為 authentication_string,指令為 UPDATE user SET authentication_string=PASSWORD('newpass') WHERE user='root';

情境二:命令列直接修改(知舊密碼)

mysqladmin -u root -p password "newpass123"
# 輸入舊密碼

情境三:忘記 root 密碼強制重設(需系統 root 權限)

  1. 正確停止服務:systemctl stop mysqld 或 /etc/init.d/mysqld stop
    切勿用 pkill mysql,會導致 mysqld dead but subsys locked 殭屍狀態
  2. 跳過權限表啟動:mysqld_safe --skip-grant-tables &
    & 表背景執行;或另開終端機
  3. 無密碼登入修改:
    mysql
    MariaDB [(none)]> USE mysql;
    MariaDB [mysql]> UPDATE user SET password=PASSWORD('newpass123') WHERE user='root';
    MariaDB [mysql]> FLUSH PRIVILEGES;
    MariaDB [mysql]> EXIT;
  4. 重啟服務驗證:systemctl restart mysqld → mysql -uroot -pnewpass123

關鍵提醒

  • MySQL 8.0+ 修改密碼建議使用 ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';
  • 修改 mysql.user 表時注意大小寫敏感度(表名、欄位名)
  • 生產環境建議建立專用管理帳號、禁用 root 遠端登入、啟用密碼複雜度策略
Copyright © Windows教程網 All Rights Reserved