mysqldump --all-databases --single-transaction --master-data=2 > full_backup_$(date +%F).sqlnet stop mysql 或服務管理器 (services.msc)sc delete mysql 或 mysqld --remove (安裝目錄 bin 下)C:\Program Files\MySQL\MySQL Server 5.0\ C:\ProgramData\MySQL\MySQL Server 5.0\ (資料目錄、日誌、配置) C:\Documents and Settings\All Users\Application Data\MySQL\ (XP/2003) %APPDATA%\MySQL\ (用戶配置)
HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL HKEY_CURRENT_USER\SOFTWARE\MySQL
# 1. 停止服務 service mysql stop # 2. 查詢安裝套件 rpm -qa | grep -i mysql # 輸出範例:mysql-5.0.x, mysql-server-5.0.x, mysql-devel-5.0.x, mysql-libs-5.0.x # 3. 移除套件 (依賴順序:server → client → libs) rpm -e mysql-server-5.0.x rpm -e mysql-5.0.x rpm -e mysql-devel-5.0.x rpm -e mysql-libs-5.0.x # 注意:其他套件可能依賴 libs,檢查後再移除 # 4. 清理殘留 rm -rf /var/lib/mysql/ # 資料目錄 (確認已備份!) rm -rf /etc/my.cnf rm -rf /etc/init.d/mysql rm -rf /usr/lib/mysql/ /usr/lib64/mysql/ rm -rf /usr/include/mysql/
apt-get purge mysql-server-5.0 mysql-client-5.0 libmysqlclient15-dev rm -rf /var/lib/mysql/ /etc/mysql/ /var/log/mysql/
# 進入原始碼目錄 make uninstall # 或手動清理安裝前缀目錄 (如 /usr/local/mysql/) rm -rf /usr/local/mysql/ rm -f /etc/init.d/mysql /etc/my.cnf
| 檢查項目 | 指令/路徑 | 預期結果 |
|---|---|---|
| 進程殘留 | ps aux | grep mysql | 無 mysqld/mysqld_safe 進程 |
| 埠口佔用 | netstat -ltnp | grep 3306 | 無 3306 監聽 |
| 服務殘留 | systemctl list-unit-files | grep mysql / chkconfig --list | grep mysql | 無 mysql 服務 |
| 資料目錄 | ls -ld /var/lib/mysql /usr/local/mysql/var | 目錄不存在或已備份移除 |
| 配置檔案 | ls -l /etc/my.cnf /etc/mysql/my.cnf | 檔案不存在 |
| 日誌檔案 | ls -l /var/log/mysql* /var/log/mysqld* | 檔案不存在 |
| 用戶/群組 | id mysql / grep mysql /etc/passwd /etc/group | 視策略保留或移除 |
| 環境變數 | echo $PATH | grep -i mysql | 無 MySQL 路徑 |
#!/bin/bash
# verify_mysql_removed.sh
echo "=== MySQL 卸載驗證 ==="
checks=0; fails=0
check() { checks=$((checks+1)); if eval "$1"; then echo "[OK] $2"; else echo "[FAIL] $2"; fails=$((fails+1)); fi; }
check "! ps aux | grep -v grep | grep -q mysqld" "無 MySQL 進程"
check "! netstat -ltnp 2>/dev/null | grep -q :3306" "無 3306 埠監聽"
check "! rpm -qa | grep -qi mysql" "無 RPM 殘留 (RHEL系)"
check "! dpkg -l | grep -qi mysql" "無 DEB 殘留 (Debian系)"
check "! [ -d /var/lib/mysql ]" "資料目錄已移除"
check "! [ -f /etc/my.cnf ]" "主配置檔已移除"
check "! [ -f /etc/init.d/mysql ]" "啟動腳本已移除"
echo "=== 總計: $checks 項檢查, $fails 項失敗 ==="
[ $fails -eq 0 ] && echo "卸載驗證通過" || echo "卸載驗證失敗,請手動清理殘留"
完全卸載 MySQL 5.0 需**停止服務 → 移除套件/服務 → 清理資料/配置/日誌目錄 → 登錄表/環境變數 (Windows) → 通用殘留驗證**。關鍵原則:**備份優先、依賴順序移除、殘留零容忍、自動化驗證**。卸載後建議重啟作業系統確保無殘留服務掛載。