伺服器 root 密碼與 MySQL root 密碼均遺失。系統 root 可透過 GRUB 單用戶模式或救援光碟重置,但 MySQL 使用者體系獨立,需另行處理。
systemctl stop mysqldmysqld_safe --skip-grant-tables --skip-networking &mysql -u rootmysql> USE mysql;
mysql> UPDATE user SET authentication_string=PASSWORD('NewPass123!') WHERE User='root';
mysql> FLUSH PRIVILEGES;
systemctl restart mysqld/tmp/reset_root.sql:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
mysqld_safe --init-file=/tmp/reset_root.sql &原文提到複製他機 user.frm/.MYD/.MYI 覆蓋本機 /usr/local/mysql/data/mysql/ 後重啟。缺點:會遺失本機所有使用者帳號與權限設定,且 MySQL 5.7+ 已改用 InnoDB 系統表,.MYD/.MYI 已不存在,此法已失效。
重置需具備作業系統 root 權限,代表實體/控制台存取權。若攻擊者已取得 OS root,資料庫密碼保護形同虛設。真正防線在於:
127.0.0.1 或內網 IP;