事故回顧
- 嘗試修改 root 密碼失敗,導致無法登入。
- 誤刪除匿名用戶(
User='')與 localhost root 用戶。
- 手動插入 root 用戶權限不全,仍無法正常操作。
- 決定重裝 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
首次啟動與密碼設定
- MySQL 5.7+ 首次啟動會生成臨時 root 密碼,日誌中可見:
grep 'temporary password' /var/log/mysqld.log
- 登入修改密碼:
mysql -u root -p'临时密码'
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
FLUSH PRIVILEGES;
- 開放遠程 root(可選,生產慎用):
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'NewPass123!' WITH GRANT OPTION;
FLUSH PRIVILEGES;
關鍵教訓
- 密碼修改必須用
PASSWORD() 或 ALTER USER,直接 UPDATE user SET password='123' 存的是明文,無法登入。
- 刪除用戶前確認影響範圍,保留至少一個擁有完整權限的管理員帳號。
- 生產環境變更前務必備份
mysql 系統庫。