MariaDB est une alternative plus optimisée à MySQL.
La version 5.5 (stable) est la version par défaut fournie sur toutes les distributions. Toutefois certaines fonctionnalités nécessite une version plus récente.
La migration vers la dernière version peut être effectuée avec la procédure suivante :
Réaliser une sauvegarde complète de la base de donnée.
mysqldump --all-databases
Arrêter l'ancien service et le désactiver.
systemctl stop mariadb systemctl disable mariadb
Installer le dépôt comformément à la documentation de MariaDB https://downloads.mariadb.org/mariadb/repositories/.
Exemple avec Centos7, il faut mettre dans le dossier /etc/yum.repo.d/mariadb.repo :
# MariaDB 10.2 CentOS repository list - created 2018-02-06 15:53 UTC # http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Mettre à jour les packages :
yum install MariaDB-Server
Vérifier le bon fonctionnement de MariaDB avec la commande :
systemctl status mysql
Le charset par défaut est dans les variables MariaDB :
SET character_set_server = 'utf8'; SET collation_server = 'utf8_general_ci';
Il peut être défini à la création de la base, ou bien modifié par la suite avec la commande :
ALTER DATABASE czech_slovak_names COLLATE = 'utf8_general_ci';
ALTER TABLE MyTable CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Le script suivant peut être utile pour changer toutes les tables d'une base de donnée :
#!/bin/bash DATABASE="myDatabase" CHARSET="utf8" COLLATE="utf8_general_ci" IFS=$'\n' QUERY="SELECT CONCAT('ALTER TABLE \`$DATABASE\`.\`', TABLE_NAME,'\` CONVERT TO CHARACTER SET $CHARSET COLLATE $COLLATE;') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$DATABASE' AND TABLE_TYPE='BASE TABLE' AND TABLE_COLLATION!='$COLLATE'" for MYSQL_CMD in `mysql -B -e "$QUERY"`; do echo "$MYSQL_CMD" mysql -B -e "$MYSQL_CMD" done