从CentOS 7或RHEL 7中完全删除MariaDB或MySQL

61

我在CentOS 7上安装了MariaDB,但我在一些配置方面遇到了问题,现在它完全被配置错误。

因此,我想用“yum remove mariadb mariadb-server”删除MariaDB,然后再用“yum install mariadb mariadb-server”重新安装。

不幸的是,配置文件仍然存在。似乎yum remove没有删除所有MariaDB配置文件。

如何完全从CentOS 7中删除MariaDB?

3个回答

103

这些步骤适用于CentOS 6.5,所以它们也应该适用于CentOS 7:

(编辑 - 同样的步骤也适用于CentOS 8上的MariaDB 10.3)

  1. yum remove mariadb mariadb-server
  2. rm -rf /var/lib/mysql 如果你在/etc/my.cnf中的datadir指向另一个目录,请删除该目录而不是/var/lib/mysql
  3. rm /etc/my.cnf 这个文件可能已经在第一步被删除了
  4. 可选步骤:rm ~/.my.cnf
  5. yum install mariadb mariadb-server

[编辑] - 适用于CentOS 7上的MariaDB 10.1的更新

以上步骤适用于CentOS 6.5和MariaDB 10。

我刚刚在CentOS 7上安装了MariaDB 10.1,其中部分步骤略有不同。

第1步将变成:

yum remove MariaDB-server MariaDB-client

第五步将变为:

yum install MariaDB-server MariaDB-client

其它步骤保持不变。


7
删除Mariadb和Mariadb服务器以及清除/var/lib/mysql和/etc/my.cnf的命令:sudo yum remove -y mariadb mariadb-server && sudo rm -rf /var/lib/mysql /etc/my.cnf - Ian Smith
1
// 在 CEntOS 7.5 Bento Vagrant Box 上测试过,运行良好。感谢 Ciprian。 - Nathan Basanese
1
在Centos 7.6上完成了此操作,一切正常。谢谢! - mmarquezvacas
2
在 centos-release-7-7.1908.0.el7.centos.x86_64 上,yum remove mariadb mariadb-server 实际上会同时卸载客户端和服务器包(版本为10.4.11-1.el7.centos)。 - DRP

11

为了更新并回答问题而不破坏邮件服务器。CentOS 7的后续版本包括MariaDB作为基础,以及依赖于MariaDB的PostFix。使用yum删除将同时删除postfix和perl-DBD-MySQL。为了解决这个问题并保留postfix,首先复制/usr/lib64/libmysqlclient.so.18(这是postfix依赖的内容),然后使用:

rpm -qa | grep mariadb

然后使用以下命令删除Mariadb软件包(更改为您的版本):

rpm -e --nodeps "mariadb-libs-5.5.56-2.el7.x86_64"
rpm -e --nodeps "mariadb-server-5.5.56-2.el7.x86_64"
rpm -e --nodeps "mariadb-5.5.56-2.el7.x86_64"

删除剩余的文件和文件夹(也会删除任何数据库):

rm -f /var/log/mariadb
rm -f /var/log/mariadb/mariadb.log.rpmsave
rm -rf /var/lib/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/share/mysql

放回你在开始时制作的 /usr/lib64/libmysqlclient.so.18 的副本,然后你可以重新启动 postfix。
更多细节请参见 https://code.trev.id.au/centos-7-remove-mariadb-replace-mysql/,其中描述了如何将 mariaDB 替换为 MySQL。

8

systemd

sudo systemctl stop mysqld.service && sudo yum remove -y mariadb mariadb-server && sudo rm -rf /var/lib/mysql /etc/my.cnf

sysvinit

sudo service mysql stop && sudo apt-get remove mariadb mariadb-server && sudo rm -rf /var/lib/mysql /etc/my.cnf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接