萬盛學電腦網

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

Linux 下 MySQL 密碼重置與權限修復實戰記錄

事故回顧

  1. 嘗試修改 root 密碼失敗,導致無法登入。
  2. 誤刪除匿名用戶(User='')與 localhost root 用戶。
  3. 手動插入 root 用戶權限不全,仍無法正常操作。
  4. 決定重裝 MySQL 徹底重置。

徹底卸載步驟

# 1. 停止服務
systemctl stop mysqld

# 2. 依賴順序移除 RPM 包
rpm -e mysql-server
rpm -e mysql-community-client
rpm -e mysql-community-common
rpm -e mysql-community-libs
# 視具體安裝包名稱調整

# 3. 刪除殘留資料目錄(備份後)
rm -rf /var/lib/mysql
rm -rf /etc/my.cnf
rm -rf /var/log/mysqld.log

重新安裝

yum install -y mysql-community-server mysql-community-devel
systemctl start mysqld
systemctl enable mysqld

首次啟動與密碼設定

  1. MySQL 5.7+ 首次啟動會生成臨時 root 密碼,日誌中可見:
    grep 'temporary password' /var/log/mysqld.log
  2. 登入修改密碼:
    mysql -u root -p'临时密码'
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
    FLUSH PRIVILEGES;
  3. 開放遠程 root(可選,生產慎用):
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'NewPass123!' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

關鍵教訓

  • 密碼修改必須用 PASSWORD() 或 ALTER USER,直接 UPDATE user SET password='123' 存的是明文,無法登入。
  • 刪除用戶前確認影響範圍,保留至少一個擁有完整權限的管理員帳號。
  • 生產環境變更前務必備份 mysql 系統庫。
copyright © 萬盛學電腦網 all rights reserved