
We have some popular database tools which are independent and commonly used. Normally you can use two different relational database management system (RDBMS) on the same server if they don't use the same port but it is not advised if you want to use the max of your server's resources. It is normally recommended to install each RDBMS on each server or to uninstall the RDBMS you don't need after keeping your data if necessary and install the new one.
The last point doesn't even work with two RDBMS which are MariaDB and MySql. You can need to remove MySql in order to install MariaDB but sometimes you can face issues with MySQL uninstallation on your Linux machine.
In this tutorial, I will show you how to do a complete and proper uninstallation of MySQL in order to install MariaDB 10 on your Centos 7 server.
Understand the issue
If we simply remove MySQL packages and try to install MariaDB, your system will try to reinstall MySQL. You will have an error message which indicates that MariaDB is obsoleted and your system will try to reinstall MySql instead:
# yum install MariaDB-server MariaDB-client -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* epel: mirrors.kernel.org
* extras: mirrors.linode.com
* rpmforge: mirrors.evowise.com
* updates: mirrors.linode.com
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-client.x86_64 0:10.1.26-1.el7.centos will be installed
--> Processing Dependency: MariaDB-common for package: MariaDB-client-10.1.26-1.el7.centos.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.1)(64bit) for package: MariaDB-client-10.1.26-1.el7.centos.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.4)(64bit) for package: MariaDB-client-10.1.26-1.el7.centos.x86_64
...............................
...............................
Dependencies Resolved
======================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================
Installing:
MariaDB-client x86_64 10.1.26-1.el7.centos mariadb 39 M
MariaDB-server x86_64 10.1.26-1.el7.centos mariadb 103 M
MariaDB-shared x86_64 10.1.26-1.el7.centos mariadb 1.3 M
replacing mariadb-libs.x86_64 1:5.5.52-1.el7
mysql-community-libs x86_64 5.6.37-2.el7 mysql56-community 2.0 M
replacing mariadb-libs.x86_64 1:5.5.52-1.el7
Installing for dependencies:
MariaDB-common x86_64 10.1.26-1.el7.centos mariadb 123 k
boost-program-options x86_64 1.53.0-26.el7 base 156 k
galera x86_64 25.3.20-1.rhel7.el7.centos mariadb 8.0 M
jemalloc x86_64 3.6.0-1.el7 epel 105 k
libaio x86_64 0.3.109-13.el7 base 24 k
mysql-community-common x86_64 5.6.37-2.el7 mysql56-community 257 k
Transaction Summary
........................
........................
Total 2.7 MB/s | 3.5 MB 00:00:01
Running transaction check
Running transaction test
Transaction check error:
file /usr/share/mysql/charsets/Index.xml conflicts between attempted installs of mysql-community-common-5.6.37-2.el7.x86_64 and MariaDB-common-10.1.26-1.el7.centos.x86_64
file /usr/share/mysql/charsets/armscii8.xml conflicts between attempted installs of mysql-community-common-5.6.37-2.el7.x86_64 and MariaDB-common-10.1.26-1.el7.centos.x86_64
file /usr/share/mysql/charsets/ascii.xml conflicts between attempted installs of mysql-community-common-5.6.37-2.el7.x86_64 and MariaDB-common-10.1.26-1.el7.centos.x86_64
In that case, we must first uninstall MySQL completely from the system and erase all settings of the old installation and then, install MariaDB by adding its own repo.
1) Completely uninstall mysql
We first need to properly uninstall MySql with all its dependencies
# yum list installed | grep mysql
mysql-community-client.x86_64 5.6.37-2.el7 @mysql56-community
mysql-community-common.x86_64 5.6.37-2.el7 @mysql56-community
mysql-community-libs.x86_64 5.6.37-2.el7 @mysql56-community
mysql-community-release.noarch el7-5 installed
mysql-community-server.x86_64 5.6.37-2.el7 @mysql56-community
To remove a package with it's dependencies , you need to install yum plugin called: remove-with-leaves. To install it type:
# yum install yum-plugin-remove-with-leaves
Now to remove a package with its dependencies: yum remove package_name --remove-leaves as below
# yum remove mysql-server --remove-leaves
Loaded plugins: fastestmirror, remove-with-leaves
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-server.x86_64 0:5.6.37-2.el7 will be erased
--> Finished Dependency Resolution
removing libaio-0.3.109-13.el7.x86_64. It is not required by anything else.
removing mysql-community-client-5.6.37-2.el7.x86_64. It is not required by anything else.
removing mysql-community-libs-5.6.37-2.el7.x86_64. It is not required by anything else.
removing mysql-community-common-5.6.37-2.el7.x86_64. It is not required by anything else.
--> Running transaction check
---> Package libaio.x86_64 0:0.3.109-13.el7 will be erased
---> Package mysql-community-client.x86_64 0:5.6.37-2.el7 will be erased
---> Package mysql-community-common.x86_64 0:5.6.37-2.el7 will be erased
---> Package mysql-community-libs.x86_64 0:5.6.37-2.el7 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================
Removing:
libaio x86_64 0.3.109-13.el7 @base 38 k
mysql-community-client x86_64 5.6.37-2.el7 @mysql56-community 89 M
mysql-community-common x86_64 5.6.37-2.el7 @mysql56-community 2.1 M
mysql-community-libs x86_64 5.6.37-2.el7 @mysql56-community 9.2 M
mysql-community-server x86_64 5.6.37-2.el7 @mysql56-community 251 M
We also need to uninstall the mysql-community-release repo
# yum remove mysql-community-release-el7-5
Loaded plugins: fastestmirror, remove-with-leaves
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-release.noarch 0:el7-5 will be erased
--> Finished Dependency Resolution
2) Remove MySQL Directory
Now we need to remove MySQL default data directory /var/lib/mysql
from our system. If you don't see the directory in the default location, it means that it changed to some other place which you can find in /etc/my.cnf
file with variable datadir.
In our case, we will delete the /var/lib/mysql
directory from the system but you can prefer to rename it in order to keep a backup of the existing files. We will completely clean up our installation directory.
# rm -rf /var/lib/mysql/
# rm -rf /etc/my.cnf
3) Install MariaDB 10
To install MariaDB 10, we must add the repo on your server. We will create a MariaDB repo file under /etc/yum.repos.d/MariaDB.repo
with the content below
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
now we can install our packages
# yum install MariaDB-server MariaDB-client
Loaded plugins: fastestmirror, remove-with-leaves
Loading mirror speeds from cached hostfile
* base: mirrors.linode.com
* epel: mirrors.kernel.org
* extras: mirrors.linode.com
* rpmforge: mirrors.evowise.com
* updates: mirrors.linode.com
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-client.x86_64 0:10.1.26-1.el7.centos will be installed
--> Processing Dependency: MariaDB-common for package: MariaDB-client-10.1.26-1.el7.centos.x86_64
---> Package MariaDB-server.x86_64 0:10.1.26-1.el7.centos will be installed
--> Processing Dependency: galera for package: MariaDB-server-10.1.26-1.el7.centos.x86_64
--> Running transaction check
---> Package MariaDB-common.x86_64 0:10.1.26-1.el7.centos will be installed
---> Package galera.x86_64 0:25.3.20-1.rhel7.el7.centos will be installed
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================
Installing:
MariaDB-client x86_64 10.1.26-1.el7.centos mariadb 39 M
MariaDB-server x86_64 10.1.26-1.el7.centos mariadb 103 M
Installing for dependencies:
MariaDB-common x86_64 10.1.26-1.el7.centos mariadb 123 k
galera x86_64 25.3.20-1.rhel7.el7.centos mariadb 8.0 M
Transaction Summary
======================================================================================================================================================
Install 2 Packages (+2 Dependent packages)
Total size: 150 M
Total download size: 150 M
Installed size: 647 M
Is this ok [y/d/N]: y
Downloading packages:
(1/3): MariaDB-10.1.26-centos7-x86_64-client.rpm | 39 MB 00:00:02
(2/3): galera-25.3.20-1.rhel7.el7.centos.x86_64.rpm | 8.0 MB 00:00:01
(3/3): MariaDB-10.1.26-centos7-x86_64-server.rpm | 103 MB 00:00:12
------------------------------------------------------------------------------------------------------------------------------------------------------
Total 12 MB/s | 150 MB 00:00:12
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : MariaDB-common-10.1.26-1.el7.centos.x86_64 1/4
Installing : MariaDB-client-10.1.26-1.el7.centos.x86_64 2/4
Installing : galera-25.3.20-1.rhel7.el7.centos.x86_64 3/4
Installing : MariaDB-server-10.1.26-1.el7.centos.x86_64
You can check the status as below
# yum list installed | grep mariadb
MariaDB-client.x86_64 10.1.26-1.el7.centos @mariadb
MariaDB-common.x86_64 10.1.26-1.el7.centos @mariadb
MariaDB-server.x86_64 10.1.26-1.el7.centos @mariadb
MariaDB-shared.x86_64 10.1.26-1.el7.centos @mariadb
You can't have MySQL and MariaDB installed on the same server. So you need to do a complete uninstallation. You must notice that when having MariaDB installed, if you need to remove it in order to install MySQL, don't forget to remove the repo otherwise MySQL will be not able to be installed.
Related Read: 2 Ways to Install MariaDB on CentOS 7
Hi, I am new to Linux and trying to build Apache Cloud setup. I am not Able to do RPM out of the source ling for Apache Cloudstack 4.13 version. Could you pls guide me on how to build the RPM or is there any link from where I can get that.
Thanks