How to Completely Remove Mysql and Install MariaDB 10

mariadb remove mysqlWe 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 our 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               
                                                         @mariadb

You can't have MySQL and MariaDB installed on the same server and, the two are conflicting when some one finds some trace of files of the another one. 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.

About Alain Francois

IT Linux administrator passionate of free and open source software, I work on Linux Systems since some years on installations and deployments of certain solutions. I like to share my experiences with a wider audience by training and conferences.

Author Archive Page

Have anything to say?

Your email address will not be published. Required fields are marked *

All comments are subject to moderation.