在Linux系统中,MariaDB作为MySQL的一个流行分支,常被用于数据库管理,但某些场景下,可能需要彻底移除它——例如系统版本升级冲突、迁移到其他数据库,或出于安全加固需求,以下操作适用于CentOS 7及更高版本,需使用root权限执行。
一、操作前的关键准备
1、备份数据

卸载前务必导出重要数据库:
- mysqldump -u root -p --all-databases > /path/to/backup.sql
输入密码后,检查备份文件完整性。
2、停止运行中的服务
强制终止可能导致数据损坏:
- systemctl stop mariadb.service
- systemctl disable mariadb.service
通过ps -ef | grep mariadb
确认进程已关闭。
二、卸载MariaDB核心组件
CentOS的包管理工具会处理依赖关系,但不同安装方式需区分处理:

场景1:通过YUM/DNF安装
- yum remove mariadb-server mariadb-client mariadb-common
若提示No match for argument
,尝试替换为:
- dnf remove @mariadb
场景2:源码编译安装
进入当初编译的目录执行:
- make uninstall
若未保留编译环境,需手动删除:
- rm -rf /usr/local/mysql
三、深度清理残留文件
软件包卸载后,这些目录仍需手动清除:

- rm -rf /var/lib/mysql/
- rm -rf /etc/my.cnf.d/
- rm -f /etc/my.cnf
- rm -rf /var/log/mariadb/
特别注意:
/var/lib/mysql
包含所有数据库文件,确认无可用数据后再删除
- 检查/etc/ld.so.conf
是否包含mysql库路径,若有则删除并执行ldconfig
四、处理遗留依赖项
1、查询关联包
- rpm -qa | grep -i maria
若输出类似mariadb-libs-5.5.68-1.el7.x86_64
,则执行:
- rpm -e --nodeps mariadb-libs
2、清理缓存
- yum clean all
- dnf clean all
五、验证卸载结果
通过三重确认保证彻底移除:
1、执行mysql -V
应提示command not found
2、运行rpm -qa | grep -i mysql
无结果返回
3、检查/etc/passwd
删除mysql用户:
- userdel mysql
- rm -rf /home/mysql
六、常见问题解决方案
问题1:依赖冲突导致卸载中断
若出现Error: Package X depends on Y
,添加--nodeps
参数强制卸载:
- rpm -e --nodeps 包名
问题2:系统自带旧版本残留
CentOS 7默认捆绑MariaDB,可修改repo文件屏蔽:
- echo 'exclude=mariadb*' >> /etc/yum.conf
问题3:/var/lib/mysql目录占用异常
使用lsof | grep /var/lib/mysql
查找占用进程,必要时重启系统再删除。
数据库组件的管理直接影响服务器稳定性,建议在生产环境操作前,先在测试机模拟整个流程,曾有运维团队因忽略/etc/my.cnf
配置文件残留,导致新安装的MySQL读取错误参数引发故障——这种细节往往比主程序卸载更值得关注,保持系统整洁度,本质上是对数据安全的长期投资。