How to replace MySQL with MariaDB in 11.36

Important: This setup is considered to be unsupported by the cPanel/WHM team. Please note that once cPanel/WHM no longer maintains MySQL on your system it is on the Systems Administrator to manage and maintain any updates and maintenance on the database software.  We recommend only experienced systems administrators perform the above and we are not responsible for any possible data loss.

Below you will find some steps on how to affectively stop cPanel/WHM from maintaining MySQL and begin utilizing MariaDB for any and all database activity on your server. MariaDB is “An enhanced, drop-in replacement for MySQL” (Source: https://mariadb.com/). The guide found below is based around utilizing the new RPM tools we provide in 11.36.
Important Links
MariaDB Versus MySQL Compatibility
MariaDB Versus MySQL Features

Documentation on the RPM system provided by cPanel & WHM

Step 1: Backup existing MySQL data

Make sure to save all existing data just in case there are any issues.

cp -Rf /var/lib/mysql /var/lib/mysql-old
mv /etc/my.cnf /etc/my.cnf-old

 

Step 2: Disable the targets so cPanel no longer handles MySQL updates

The following will mark the versions of MySQL we distribute as uninstalled so they are no longer maintained by cPanel/WHM

/scripts/update_local_rpm_versions --edit target_settings.MySQL50 uninstalled
/scripts/update_local_rpm_versions --edit target_settings.MySQL51 uninstalled
/scripts/update_local_rpm_versions --edit target_settings.MySQL55 uninstalled

 

Step 3: Remove existing MySQL RPM’s so theres a clean slate for MariaDB

Important: The below command will uninstall the MySQL RPM’s! 
/scripts/check_cpanel_rpms --fix --targets=MySQL50,MySQL51,MySQL55
[20130218.235953]    
[20130218.235953]   The following RPMs are unneeded on your system and should be uninstalled:
[20130218.235953]   MySQL51-devel.5.1.68-1.cp1136
[20130218.235953]   MySQL51-test.5.1.68-1.cp1136
[20130218.235953]   MySQL51-shared.5.1.68-1.cp1136
[20130218.235953]   MySQL51-client.5.1.68-1.cp1136
[20130218.235953]   MySQL51-server.5.1.68-1.cp1136
[20130218.235953]   Removing 0 broken rpms: 
[20130218.235953]   rpm: no packages given for erase
[20130218.235953]   No new RPMS needed for install
[20130218.235953]   Uninstalling unneeded rpms: MySQL51-devel MySQL51-test MySQL51-shared MySQL51-client MySQL51-server
[20130219.000004]   Shutting down MySQL........ SUCCESS!

 

Step 4: Create a yum repository for MariaDB

vi /etc/yum.repos.d/MariaDB.repo

place the following inside of it depending on the DISTRO (https://downloads.mariadb.org/mariadb/repositories/):

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5.29/centos6-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

 

Step 5: Remove php from the /etc/yum.conf file then run the following commands

yum install MariaDB-server MariaDB-client MariaDB-devel
/etc/init.d/mysql start
mysql_upgrade
/etc/init.d/mysql restart

Step 5: Add php back to the /etc/yum.conf file to ensure future php updates don’t get clobbered

Final Step: Rebuild easyapache/php to ensure modules are intact/working

/scripts/easyapache --build

 

This entry was posted in Tips & Tricks and tagged , , , , , . Bookmark the permalink.
  • Harijith Rajasen

    Please update the baseurl. The new baseurl is “http://yum.mariadb.org/5.5.38/centos6-amd64/”.

  • Dan

    I installed MariaDB 10, which doesnt operate as well as 5.5 for me. I rolled back to mySQL 5.5 and wanted to move to MariaDB 5.5 but even with changing the repo and starting from fresh the system still wants to download version 10.

    Is there anyway for me to force 5.5 install?

    Cheers
    Dan

    • Joao Machado

      In CentOS, you may have to run “yum clean all” to remove the caches..

  • Feanor

    That’s amazing guide! Everything works perfect!
    Just replace baseurl = http://yum.mariadb.org/5.5.29/centos6-amd64/ with new http://yum.mariadb.org/10.0.11/centos6-amd64/, that’s all

  • Gavin Schumaker

    Given that Google has announced that it’s migrating away from MySQL to MariaDB, it’s high time for cPanel to jump on the bandwagon and migrate to MariaDB – especially since Oracle is not exactly rushing out new features or even bug fixes.

    MariahDB is really cooking along with new features for very high performance – including NoSQL support using different database engines, and much better (i.e., speedier) master/slave replication) and is of course headed up by Monty Widenius, one of the original creators of MySQL

    I’ve been a fan of MySQL since the late nineties, but with it’s acquisition by Oracle, it’s heading downhill fast. As a long time sysadmin and web host provider, I’d much rather have MariahDB under the cPanel hood going forward.

  • Pingback: Manually Upgrading MySQL :: The cPanel Admin

  • laztrix

    When will cpanel offically support MariaDB? I’ve been reading all the “we’re investigating” messages posted by cpanel officials but years has passed, nothing! Why are we being stalled?

    • Jesse

      @laztrix:disqus There is no definitive timeframe on when/if this will be supported – following the features page on this will give the most up to date information on where it’s at with our development feature teams.

  • http://www.wismoyo.com Rahmat Agung Wismoyo

    in #4, i need to temporary remove perl* too from yum.conf, because instalation need dependency with perl-DBI

    • Jesse

      @rawiz:disqus cPanel does not depend on system perl any longer, so you can remove the perl exclude permanently as we no longer manage system perl. New installs will no longer have it in the excludes file.

  • jimlongo

    Tried this 3 times before I got it right (11.38.2) . . . a couple of comments.
    You might need to create the directory /etc/yum.repos.d before you can do
    #4 pico /etc/yum.repos.d/MariaDB.repo

    #5 remove php from /etc/yum.conf is not totally clear, I assume you mean remove it from the line “exclude = … php* …

    in number 5 the text added to the file /etc/yum.repos.d/MariaDB.repos is critical that you have this right, I had 64 bit instead of 32 bit Centos 5, and it wouldn’t allow yum to install the packages, kept getting an error “No package available”.

    Thanks.

    • Jesse

      @jimlongo:disqus, /etc/yum.repos.d should already exist on CentOS systems.

      Please note the guide is meant for a systems administrator who’s already familiar with these files, but good note about it needing to be removed from excludes (although it is the only place that has it).

      I only showed the mirror in the comment box as an example, in my note above the step it does say it depends on the distribution.

      I am glad you got things working!

      • Morgan Feldon

        We’re running WHM/cPanel, thus we’re not a systems administrator. Needs to be step-by-step. Not step-by-almost-step.

  • http://www.nickifaulk.com/ Nicki

    Nice guide! I have been eyeing MariaDB for a while and had wondered how easily it could be replaced on a cPanel box. Thank you for sharing this! ^_^