首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Ubuntu/Debian 系統完整卸載 MySQL 指令與殘留清理

     編輯:MySQL 資料庫相關知識

標準卸載流程

1. 停止服務

systemctl stop mysql
# 或
service mysql stop

2. 完整移除套件(含配置檔)

apt-get --purge remove mysql-client mysql-server mysql-common mysql-server-core-* mysql-client-core-*
  • --purge:同時刪除配置檔(/etc/mysql/、/var/lib/mysql/ 等)
  • 通配符 mysql-server-core-* 覆蓋所有版本核心套件

3. 自動移除依賴孤兒套件

apt-get autoremove

4. 清理 apt 快取(可選)

apt-get autoclean

驗證卸載結果

# 檢查殘留套件
dpkg -l | grep mysql

# 檢查殘留目錄
ls -la /etc/mysql/ 2>/dev/null && echo "殘留配置目錄"
ls -la /var/lib/mysql/ 2>/dev/null && echo "殘留資料目錄"
ls -la /var/log/mysql/ 2>/dev/null && echo "殘留日誌目錄"

# 檢查殘留使用者/群組
getent passwd mysql
getent group mysql

強制清理殘留(若標準流程未淨)

# 刪除殘留目錄
rm -rf /etc/mysql/
rm -rf /var/lib/mysql/
rm -rf /var/log/mysql/
rm -rf /var/run/mysqld/

# 刪除殘留使用者/群組(謹慎,確認無其他服務依賴)
userdel mysql
groupdel mysql

# 刪除 AppArmor 設定檔
rm -f /etc/apparmor.d/usr.sbin.mysqld
rm -f /etc/apparmor.d/disable/usr.sbin.mysqld
apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld 2>/dev/null

常見套件名稱對照表

功能套件名稱模式說明
伺服器mysql-server, mysql-server-5.7, mysql-server-8.0, mysql-server-core-*核心服務
客戶端mysql-client, mysql-client-5.7, mysql-client-8.0, mysql-client-core-*命令列工具
共用檔案mysql-common錯誤訊息、字元集等
Percona 版percona-server-server-*, percona-server-client-*, percona-server-common-*Percona 分支
MariaDB 版mariadb-server, mariadb-client, mariadb-commonMariaDB 分支

特殊情況處理

多版本共存時只移除特定版本

# 僅移除 5.7
apt-get --purge remove mysql-server-5.7 mysql-client-5.7

# 保留 8.0,移除其他
apt-get --purge remove 'mysql-server-5.*' 'mysql-client-5.*'

Docker 容器內卸載

# 容器內執行相同指令,但通常建議重建映像而非修改運行容器

誤刪系統關鍵套件恢復

apt-get install --reinstall ubuntu-minimal  # Ubuntu
apt-get install --reinstall debian-archive-keyring  # Debian

卸載後重新安裝建議

  1. 更新套件索引:apt-get update
  2. 安裝指定版本:apt-get install mysql-server-8.0 mysql-client-8.0
  3. 執行安全初始化:mysql_secure_installation
  4. 調整配置:編輯 /etc/mysql/mysql.conf.d/mysqld.cnf

一鍵腳本(生產環境請逐行確認)

#!/bin/bash
set -e
systemctl stop mysql
apt-get --purge remove -y 'mysql-*' 'percona-*' 'mariadb-*'
apt-get autoremove -y
apt-get autoclean
rm -rf /etc/mysql /var/lib/mysql /var/log/mysql /var/run/mysqld
userdel mysql 2>/dev/null; groupdel mysql 2>/dev/null
echo "MySQL 完全卸載完成"
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved