2026年Debian上MariaDB完全卸载指南:安全移除与数据备份(2026)

一、卸载前准备

1.1 为什么要正确卸载

直接删除MariaDB文件会导致:
– 残留配置文件影响重新安装
– 数据丢失无法恢复
– 系统服务残留导致端口占用
– 依赖包冲突

1.2 备份重要数据

卸载前务必备份所有数据库:

# 备份所有数据库
mysqldump -u root -p --all-databases --single-transaction \
  --routines --triggers --events | \
  gzip > /backup/mariadb/all_databases_$(date +%Y%m%d).sql.gz

# 备份单个数据库
mysqldump -u root -p --single-transaction mydb | \
  gzip > /backup/mariadb/mydb_$(date +%Y%m%d).sql.gz

# 备份配置文件
sudo cp -r /etc/mysql /backup/mariadb/mysql_config_backup

1.3 确认MariaDB状态

# 查看MariaDB版本
mariadb --version

# 查看服务状态
sudo systemctl status mariadb

# 查看已安装的MariaDB包
dpkg -l | grep -i maria

# 查看数据目录大小
sudo du -sh /var/lib/mysql

二、停止MariaDB服务

2.1 停止服务

# 停止MariaDB服务
sudo systemctl stop mariadb

# 禁止开机自启
sudo systemctl disable mariadb

# 确认服务已停止
sudo systemctl status mariadb

2.2 检查端口释放

# 检查3306端口是否已释放
sudo ss -tulnp | grep 3306

# 如果端口仍被占用,强制终止进程
sudo kill -9 $(pgrep mariadbd)

三、卸载MariaDB

3.1 标准卸载(保留配置文件)

# 卸载MariaDB服务端和客户端
sudo apt remove --purge mariadb-server mariadb-client -y

# 卸载相关组件
sudo apt remove --purge mariadb-common mariadb-core -y

# 卸载Galera集群(如果安装了)
sudo apt remove --purge galera-4 -y

3.2 完全卸载(包括配置和数据)

# 完全卸载所有MariaDB包
sudo apt remove --purge mariadb-server mariadb-client \
  mariadb-common mariadb-core galera-4 -y

# 自动移除依赖包
sudo apt autoremove --purge -y

# 删除配置文件
sudo rm -rf /etc/mysql

# 删除数据目录
sudo rm -rf /var/lib/mysql

# 删除日志文件
sudo rm -rf /var/log/mysql

# 删除运行时文件
sudo rm -rf /run/mysqld

3.3 使用dpkg强制卸载

如果apt卸载失败,可以使用dpkg强制卸载:

# 列出所有MariaDB相关包
dpkg -l | grep -i maria | awk '{print $2}'

# 强制逐个卸载
sudo dpkg --remove --force-remove-reinstreq \
  mariadb-server mariadb-client mariadb-common

# 清除残留
sudo dpkg --purge --force-all $(dpkg -l | grep -i maria | awk '{print $2}')

四、清理残留文件

4.1 查找残留文件

# 查找MariaDB相关文件
sudo find / -name "*mariadb*" -o -name "*mysql*" 2>/dev/null | \
  grep -v -E "(backup|\.sql|proc|sys)"

# 查找残留配置
sudo find /etc -name "*mariadb*" -o -name "*mysql*" 2>/dev/null

# 查找残留数据
sudo find /var -name "*mysql*" -o -name "*mariadb*" 2>/dev/null

4.2 清理残留目录

# 删除所有残留目录
sudo rm -rf /etc/mysql
sudo rm -rf /var/lib/mysql
sudo rm -rf /var/log/mysql
sudo rm -rf /var/lib/mysql-debian-sys-maint
sudo rm -rf /usr/share/mysql
sudo rm -rf /usr/lib/mysql

# 删除AppArmor配置(如果存在)
sudo rm -f /etc/apparmor.d/usr.sbin.mysqld
sudo rm -f /etc/apparmor.d/local/usr.sbin.mysqld

4.3 清理系统用户和组

# 查看mysql用户
id mysql

# 删除mysql用户和组
sudo userdel mysql
sudo groupdel mysql

# 查看mysql用户home目录
sudo rm -rf /home/mysql

4.4 清理systemd服务文件

# 重新加载systemd
sudo systemctl daemon-reload

# 重置失败状态
sudo systemctl reset-failed

4.5 清理APT缓存

# 清理APT下载缓存
sudo apt clean

# 清理不再需要的依赖
sudo apt autoremove --purge -y

# 验证无残留包
dpkg -l | grep -i maria

五、验证卸载完成

5.1 检查包状态

# 确认无MariaDB包
dpkg -l | grep -i maria
# 应该无输出

# 确认无mysql相关包
dpkg -l | grep -i mysql
# 应该无输出或仅显示其他依赖mysql的包

5.2 检查服务状态

# 确认服务不存在
sudo systemctl status mariadb
# 应该显示"Unit mariadb.service could not be found"

# 确认端口已释放
sudo ss -tulnp | grep 3306
# 应该无输出

5.3 检查文件残留

# 确认数据目录已删除
ls -la /var/lib/mysql
# 应该显示"No such file or directory"

# 确认配置目录已删除
ls -la /etc/mysql
# 应该显示"No such file or directory"

六、重新安装MariaDB

6.1 全新安装

# 更新软件源
sudo apt update

# 安装MariaDB
sudo apt install mariadb-server -y

# 启动服务
sudo systemctl start mariadb
sudo systemctl enable mariadb

# 运行安全配置
sudo mysql_secure_installation

6.2 恢复备份数据

# 解压备份文件
gunzip < /backup/mariadb/all_databases_20260514.sql.gz | \
  mysql -u root -p

# 恢复单个数据库
gunzip < /backup/mariadb/mydb_20260514.sql.gz | \
  mysql -u root -p mydb

# 验证数据
mysql -u root -p -e "SHOW DATABASES;"

6.3 恢复配置文件

# 恢复自定义配置
sudo cp /backup/mariadb/mysql_config_backup/my.cnf /etc/mysql/

# 重启服务
sudo systemctl restart mariadb

七、常见问题

Q1: 卸载时提示”依赖问题”

# 强制修复依赖
sudo apt --fix-broken install

# 然后重新卸载
sudo apt remove --purge mariadb-server -y

Q2: 卸载后无法安装新版本

# 清理dpkg状态
sudo dpkg --configure -a

# 清理APT锁
sudo rm -f /var/lib/dpkg/lock
sudo rm -f /var/lib/apt/lists/lock
sudo rm -f /var/cache/apt/archives/lock

# 重新安装
sudo apt update
sudo apt install mariadb-server -y

Q3: 卸载后端口仍被占用

# 查找占用端口的进程
sudo lsof -i :3306

# 终止进程
sudo kill -9 <PID>

# 如果是其他服务占用,修改MariaDB端口
# 在/etc/mysql/mariadb.conf.d/50-server.cnf中添加:
# port = 3307

Q4: 数据目录无法删除

# 检查是否有进程在使用
sudo lsof +D /var/lib/mysql

# 停止所有相关进程
sudo systemctl stop mariadb
sudo kill -9 $(pgrep mariadbd)

# 强制删除
sudo rm -rf /var/lib/mysql

总结

Debian上完全卸载MariaDB需要以下步骤:

  1. 备份数据:使用mysqldump导出所有数据库
  2. 停止服务:systemctl stop + disable
  3. 卸载软件包:apt remove –purge
  4. 清理残留:删除配置、数据、日志、用户
  5. 验证完成:确认无残留包和文件
  6. 清理APT缓存:apt clean + autoremove

注意事项
– 卸载前务必备份数据
– 使用–purge选项彻底清除配置
– 验证端口已释放再重新安装
– 重新安装后恢复备份数据

注:本文基于MariaDB 11.4和Debian 12编写,卸载操作不可逆,请谨慎操作。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注