Installing MariaDB Alongside MySQL
Instructions for installing MariaDB on the same server as an existing MySQL installation, useful for migration testing or running multiple versions.
MariaDB was originally designed as a drop-in replacement of MySQL, with more features, new storage engines, fewer bugs, and better performance, but you can also install it alongside MySQL. (This can be useful, for example, if you want to migrate databases/applications one by one.)
Here are the steps to install MariaDB near an existing MySQL installation.
Download the compiled binary tar.gz file that contains the latest version.
Extract the files in a directory of your choice. In the following, we assume you chose the
/optdirectory.
[root@mariadb-near-mysql ~]# cat /etc/issue
CentOS release 6.2 (Final)
[root@mariadb-near-mysql ~]# rpm -qa mysql*
mysql-5.1.61-1.el6_2.1.x86_64
mysql-libs-5.1.61-1.el6_2.1.x86_64
mysql-server-5.1.61-1.el6_2.1.x86_64
[root@mariadb-near-mysql ~]# ps axf | grep mysqld
2072 pts/0 S+ 0:00 \_ grep mysqld
1867 ? S 0:01 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock ...
1974 ? Sl 0:06 \_ /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql ...Create data directory and symlinks as below:
[root@mariadb-near-mysql opt]# mkdir mariadb-data
[root@mariadb-near-mysql opt]# ln -s mariadb-5.5.24-linux-x86_64 mariadb
[root@mariadb-near-mysql opt]# ls -al
total 20
drwxr-xr-x. 5 root root 4096 2012-06-06 07:27 .
dr-xr-xr-x. 23 root root 4096 2012-06-06 06:38 ..
lrwxrwxrwx. 1 root root 27 2012-06-06 07:27 mariadb -> mariadb-5.5.24-linux-x86_64
drwxr-xr-x. 13 root root 4096 2012-06-06 07:07 mariadb-5.5.24-linux-x86_64
drwxr-xr-x. 2 root root 4096 2012-06-06 07:26 mariadb-dataCreate group mariadb and user mariadb and set correct ownerships:
Create a new my.cnf in /opt/mariadb from support files:
Edit the file /opt/mariadb-data/my.cnf and add custom paths, socket, port, user and the most important of all: data directory and base directory. Finally the file should have at least the following:
Copy the init.d script from support files in the right location:
Edit /etc/init.d/mariadb replacing mysql with mariadb as below:
The trickiest part will be the last changes to this file. You need to tell mariadb to use only one configuration file. In the start section after**$bindir/mysqld_safe** add --defaults-file=/opt/mariadb-data/my.cnf. Finally the lines should look like:
The same change needs to be made to the mariadb-admin command below in the wait_for_ready() function so that the mariadb start command can properly listen for the server start. In the wait_for_ready() function, after $bindir/mariadb-admin add --defaults-file=/opt/mariadb-data/my.cnf. The lines should look like:
Run mariadb-install-db by explicitly giving it the my.cnf file as argument:
Now you can start MariaDB by
Make MariaDB start at system start:
Finally test that you have both instances running:
What about MariaDB Upgrades ?
By having the mariadb.socket, my.cnf file and databases in /opt/mariadb-data means that if you want to upgrade the MariaDB version you will only need to:
Extract the new version from the archive in
/optnear the current version,Stop MariaDB.
Change the symlink mariadb to point to the new directory.
Start MariaDB.
Run upgrade script... but remember you will need to provide the socket option --
socket=/opt/mariadb-data/mariadb.sock.
This page is licensed: CC BY-SA / Gnu FDL
Last updated
Was this helpful?

