Installare MariaDB insieme a MySQL

MariaDB è un rimpiazzo di MySQL pronto all'uso, ma è anche possibile installarlo insieme a MySQL. Questo è utile, per esempio, se si desidera migrare i database e le applicazioni uno per uno.

Ecco il procedimento per installare MariaDB accanto a un'installazione esistente di MySQL.

  • Compilare il tar.gz binario che contiene l'ultima versione (mariadb-5.5.24-linux-x86_64.tar.gz - al momento della stesura di questo articolo) ed estrarre i file in una directory a propria scelta. In questo articolo si presume che la cartella sia /opt.
[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 ...
  • Creare una directory dei dati e i symlink come segue:
[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-data
  • Creare il gruppo mariadb e l'utente mariadb, e impostare i permessi:
[root@mariadb-near-mysql opt]# groupadd --system mariadb
[root@mariadb-near-mysql opt]# useradd -c "MariaDB Server" -d /opt/mariadb -g mariadb --system mariadb
[root@mariadb-near-mysql opt]# chown -R mariadb:mariadb mariadb-5.5.24-linux-x86_64/
[root@mariadb-near-mysql opt]# chown -R mariadb:mariadb mariadb-data/
  • Creare un nuovo my.cnf in /opt/mariadb dai file di supporto:
[root@mariadb-near-mysql opt]# cp mariadb/support-files/my-medium.cnf mariadb-data/my.cnf
[root@mariadb-near-mysql opt]# chown mariadb:mariadb mariadb-data/my.cnf
  • Modificare il file /opt/mariadb-data/my.cnf e aggiungere i path, il socket, la porta, l'utente e, più importante di tutto, la directory dei dati e la base directory. Alla fine il file dovrebbe contenere almeno quanto segue:
[client]
port		= 3307
socket		= /opt/mariadb-data/mariadb.sock

[mysqld]
datadir         = /opt/mariadb-data
basedir         = /opt/mariadb
port		= 3307
socket		= /opt/mariadb-data/mariadb.sock
user            = mariadb
  • Copiare lo script init.d sdai file di supporto al percorso corretto:
[root@mariadb-near-mysql opt]# cp mariadb/support-files/mysql.server /etc/init.d/mariadb
[root@mariadb-near-mysql opt]# chmod +x /etc/init.d/mariadb
  • Modificare /etc/init.d/mariadb rimpiazzando mysql con mariadb come segue:
- # Provides: mysql
+ # Provides: mariadb
- basedir=
+ basedir=/opt/mariadb
- datadir=
+ datadir=/opt/mariadb-data
- lock_file_path="$lockdir/mysql"
+ lock_file_path="$lockdir/mariadb"

L'ultima modifica in questo file è la più delicata. Bisogna dire a mariadb di usare un solo file cnf. Nella sezione start dopo $bindir/mysqld_safe aggiungere --defaults-file=/opt/mariadb-data/my.cnf. Alla fine le righe dovrebbero assomigliare alle seguenti:

# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
$bindir/mysqld_safe --defaults-file=/opt/mariadb-data/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
  • Eseguire mysql_install_db passando esplicitamente il file my.cnf come argomento:
[root@mariadb-near-mysql opt]# cd mariadb
[root@mariadb-near-mysql mariadb]# scripts/mysql_install_db --defaults-file=/opt/mariadb-data/my.cnf
  • Avviare MariaDB così:
[root@mariadb-near-mysql opt]# /etc/init.d/mariadb start
Starting MySQL...                                          [  OK  ]
  • Far sì che MariaDB si avvii al boot del sistema:
[root@mariadb-near-mysql opt]# cd /etc/init.d
[root@mariadb-near-mysql init.d]# chkconfig --add mariadb 
[root@mariadb-near-mysql init.d]# chkconfig --levels 3 mariadb on
  • Infine testare che entrambe le istanze funzionino:
[root@mariadb-near-mysql ~]# mysql -e "SELECT VERSION();"
+-----------+
| VERSION() |
+-----------+
| 5.1.61    |
+-----------+
[root@mariadb-near-mysql ~]# mysql -e "SELECT VERSION();" --socket=/opt/mariadb-data/mariadb.sock
+----------------+
| VERSION()      |
+----------------+
| 5.5.24-MariaDB |
+----------------+

E gli aggiornamenti di MariaDB?

Dopo aver impostato mariadb.socket, il file my.cnf e databases in /opt/mariadb-data se si vuole aggiornare la versione di MariaDB occorre:

  • decomprimere la nuova versione in /opt accanto alla versione corrente
  • arrestare MariaDB
  • modificare il symlink mariadb in modo che punti alla nuova directory
  • avviare MariaDB
  • eseguire lo script upgrade... ma ricordando che bisogna specificare l'opzione socket --socket=/opt/mariadb-data/mariadb.sock

Commenti

Sto caricando i commenti......