Installer MariaDB 10.3 sur Ubuntu 18.04 LTS

La nouvelle version stable de MariaDB a été publiée le 25 Mai 2018, avec la release 10.3.7. Dans ce tutoriel, nous allons voir comment installer MariaDB 10.3 sur Ubuntu 18.04 LTS et comment mettre à jour MariaDB 10.2 vers la version 10.3

Ce tutoriel est également applicable à Ubuntu 16.04 LTS

Il est tout d'abord important de préciser que les versions précédentes du serveur de base de données restent supportées jusqu'en 2020 pour la version 10.1 et 2022 pour la version 10.2. Il n'y a donc aucune raison de se précipiter pour effectuer la mise à jour sur votre serveur.

Cependant, comme le précise les notes de publications de MariaDB, la version 10.3 est une évolution de la version 10.2, avec de nombreuses nouvelles fonctionnalités, mais toujours les fonctionalités backportées et réimplémentées de MySQL.

On peut même trouver le message suivant dans l'article concernant la mise à jour de MariaDB 10.2 vers la version 10.3 :

On most servers upgrading from 10.2 should be painless

La majorité de mes serveurs utilisant déjà MariaDB 10.2, j'ai souhaité vérifier si la mise à jour se faisait effectivement sans problème.

Installer MariaDB 10.3

La première étape, que ce soit sur pour installer MariaDB sur un nouveau serveur, ou pour mettre à jour MariaDB 10.2 est l'ajout des dépôts APT. Et pour cela MariaDB propose un script qui réalise l'ajout des dépots et l'importation des clés GPG automatiquement. Il est compatible avec les distributions linux les plus populaires : Ubuntu 14/16/18.04 LTS - Debian 7/8/9  - Centos 6/7

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup \
| sudo bash -s -- --mariadb-server-version=10.3 --skip-maxscale

Ce script réalise l'ajout des dépôts APT pour MariaDB Server/Cluster et Percona XtraBackup. L'argument --mariadb-server-version= permet de choisir la version de MariaDB que l'on souhaite installer (10.1 ou 10.2 ou 10.3). Et l'argument --skip-maxscale désactive l'ajout des dépôts de MariaDB MaxScale.

Sur un nouveau serveur

S'il s'agit d'une installation initiale, sur un nouveau serveur, après avoir ajouté les dépôts APT, il vous suffit d'installer le paquet mariadb-server

sudo apt-get update && sudo apt-get install mariadb-server -y

Durant l'installation, vous pouvez définir le mot de passe root, ou le laisser vide afin d'utiliser ensuite la commande mysql_secure_installation qui permet de sécuriser un serveur MySQL en répondant à quelques questions.

Mise à jour depuis MariaDB 10.2

Pour mettre à jour MariaDB depuis la version 10.2 vers la version 10.3, il est nécessaire de prendre quelques précautions avant de mettre à jour les paquets pour être sûr de ne pas perdre de données.

Pour cela, le plus simple est de réaliser une copie du dossier /var/lib/mysql qui contient vos bases de données avant de désinstaller mariadb

# on arrête le serveur MySQL
sudo service mysql stop

# on copie le dossier /var/lib/mysql
sudo cp -rf /varlib/mysql /var/lib/mysqlold

# on désinstalle mariadb 10.2
sudo apt-get autoremove mariadb-server

On peut ensuite remplacer les dépôts APT de la version 10.2 par ceux de la version 10.3 en utilisant le script mariadb_repo_setup

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup \
| sudo bash -s -- --mariadb-server-version=10.3 --skip-maxscale

Puis mettre à jour la liste des dépôts :

sudo apt-get update

La dernière étape est de lancer l'installation de la nouvelle version de mariadb

sudo apt-get install mariadb-server

Durant la mise à jour, vous pouvez laisser le mot de passe root vide pour conserver celui que vous avez définit précédemment.

Une fois la mise à jour terminée, vous pouvez vérifié le status de MariaDB avec la commande :

service mysql status

Si la mise s'est bien déroulée, n'oubliez pas d'utiliser la commande mysql_upgrade pour mettre à jour vos base de données.
Si vous n'avez placé les identfiants du serveur MySQL dans un fichier .my.cnf, mysql_upgrade s'utilise de la même façon que mysql :

mysql_upgrade -u root -p

Revenir à MariaDB 10.2

J'ai déjà réalisé cette mise à jour sur 6 serveurs sans rencontrer le moindre problème. Mais dans le cas d'un problème suite à la mise à jour, vous pouvez à tout moment revenir sur la version 10.2 en utilisant la copie du dossier /var/lib/mysql réalisée plus tôt.  

Commencez par remettre en place les dépôts APT de MariaDB 10.2, qui sont normalement récupérable dans un fichier nommé mariadb.list.old_1

# cp -f /etc/apt/sources.list.d/mariadb.list.old_1 /etc/apt/sources.list.d/mariadb.list

Mais que vous pouvez également ajouter en utilisant le script mariadb_repo_setup :

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup \
| sudo bash -s -- --mariadb-server-version=10.2 --skip-maxscale

Ensuite, désinstaller mariadb-server

sudo apt-get autoremove mariadb-server

Et Remplacez le dossier /var/lib/mysql avec le contenu du dossier /var/lib/mysqlold

# on déplace le dossier /var/lib/mysql
sudo mv /var/lib/mysql /var/lib/mysqlnew

# on remet en place le dossier /var/lib/mysqlold
sudo mv /var/lib/mysqlold /var/lib/mysql

# on définit à nouveau le propriétaire du dossier
sudo chown -R mysql:mysql /var/lib/mysql

La dernière étape est de réinstaller MariaDB 10.2

sudo apt-get update
sudo apt-get install mariadb-server