Mariadb
MariaDB est un système de gestion de base de données créé par Michael Widenius (créateur de MySQL) en 2009. MariaDB est 100% compatible avec MySQL, ce qui permet une migration facile et sans risque. A noter que la version 5.5 de MariaDB inclue des fontionalités de la version 5.6 de MySQL et utilise XtraDB de Percona comme moteur pour les formats de table InnoDB.
Installation
mariadb étant encore marqué en test dans l’arbre de portage, il vous faudra démasquer les paquets suivants :
echo "virtual/mysql" > /etc/portage/package.accept_keywords/virtual/mysql
echo "dev-db/mariadb" >> /etc/portage/package.accept_keywords/dev-db/mariadb
Procédez ensuite à son installation :
emerge -av mariadb
Et lancez la commande suivante afin de créer les bases par défaut et initialiser le compte root de l’instance mariadb
emerge --config =dev-db/mariadb-5.5.28
Démarrez le service mariadb :
/etc/init.d/mysql start
rc-update add mysql default
Et effectuez la première connexion :
mysql -u root -p
Profitez de votre installation MariaDB.
Migration
Cette procédure part du principe que vous avez le paquet >=dev-db/mysql-5.5 de fonctionnel sur votre machine. Il vous faudra donc démasquer le paquet dev-db/mariadb comme ce qui suit par exemple :
echo "dev-db/mariadb" > /etc/portage/package.accept_keywords/dev-db/mariadb
Il n’est jamais acte inutile que de faire une sauvegarde de ses bases de données avant une “migration”… :-)
mysqldump -S /run/mysqld/mysqld.sock --opt -Q -A --quick --complete-insert > myfile.sql
Vérifiez votre version mysql installée :
equery list dev-db/mysql
Faites-en un paquet qui vous permettra de revenir en arrière :
quickpkg dev-db/mysql
Stoppez le service MySQL :
/etc/init.d/mysql stop
Installez la version correspondante pour le paquet dev-db/mariadb :
emerge -aC dev-db/mysql && emerge -av mariadb
Une fois l’installation terminée, démarrez votre service mariadb :
/etc/init.d/mysql start
Lancez une vérification des tables :
mysql_upgrade
A partir de là vous pouvez utiliser mariadb avec les mêmes commandes que mysql.