針對通過 RPM 包安裝的 MySQL,標準卸載流程:移除 RPM 包 → 刪除殘留目錄 → 清理用戶/服務。本文以 SUSE Linux Enterprise Server 10 SP3 / MySQL 5.5.37 為例。
# OS 版本
cat /etc/issue
# Welcome to SUSE Linux Enterprise Server 10 SP3 (x86_64)
# 查看已安裝 MySQL RPM 包
rpm -qa | grep -i mysql
MySQL-devel-5.5.37-1.sles10
MySQL-server-5.5.37-1.sles10
MySQL-shared-compat-5.5.37-1.sles10
MySQL-client-5.5.37-1.sles10
MySQL-shared-5.5.37-1.sles10
MySQL-test-5.5.37-1.sles10
MySQL-embedded-5.5.37-1.sles10
/etc/init.d/mysql stop
# Shutting down MySQL done
rpm -e --nodeps MySQL-server-5.5.37-1.sles10
rpm -e --nodeps MySQL-client-5.5.37-1.sles10
rpm -e --nodeps MySQL-devel-5.5.37-1.sles10
rpm -e --nodeps MySQL-shared-compat-5.5.37-1.sles10
rpm -e --nodeps MySQL-shared-5.5.37-1.sles10
rpm -e --nodeps MySQL-test-5.5.37-1.sles10
rpm -e --nodeps MySQL-embedded-5.5.37-1.sles10
注意:若提示「刪除項時出錯」,需對註冊表項(/var/lib/rpm)授予管理員權限後重試。
# 查找殘留
find / -name mysql
# 典型殘留路徑
rm -rf /etc/apparmor.d/abstractions/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/local/quickfix_old/src/sql/mysql
# 刪除配置檔(如存在)
rm -f /etc/my.cnf
# 檢查 mysql 用戶
grep mysql /etc/passwd
# mysql:x:104:106:MySQL server:/var/lib/mysql:/bin/bash
# 如不再需要,可刪除
userdel mysql
groupdel mysql
rpm -qa | grep -i mysql
# 無輸出表示已清理乾淨
chkconfig --list | grep mysql
# 無輸出表示服務已移除
rpm -qa | grep mysql 獲取完整包名,再逐個移除,勿直接 rpm -e mysql。chattr -i /var/lib/rpm/* 或在圖形界面對 RPM 資料庫目錄授予管理員完全控制權限。systemctl disable mysql; systemctl daemon-reload。遵循「停服務 → 移包 → 刪目錄 → 清用戶 → 驗證」五步法,可確保 RPM 安裝的 MySQL 乾淨卸載。