Logo MariaDB

Migration depuis MySQL 5.5 vers MariaDB 5.5 sur Debian 7.1 (Wheezy)

closeCet article a été publié il y a 10 ans 7 mois 4 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Allez, on commence donc avec l’aventure de la migration d’un serveur Mysql 5.5 vers MariaDB 5.5. Évidemment sous Linux, et évidemment sous Debian.

Préambule

La migration a été tentée sur une machine virtuelle Debian Wheezy 7.1 avec certains paquets installés depuis le dépot dotdeb. Il s’agit en fait d’un hébergement Nginx+php-fpm+MySQL installé grâce au script de Nicolargo. J’ai donc commencé par faire une sauvegarde de cette VM. Dans mon cas et parce que je suis feignant, j’ai exporté l’appliance en .ova (le serveur utilise OpenMediaVault avec un plugin Virtualbox), histoire de pouvoir la restaurer ensuite si besoin. Je vous conseille donc d’en faire de même, ou de sauvegarder un max de truc pour réinstaller si vous cassez tout. Toutes les manipulations ont été effectuées avec le compte root; il est également possible, si vous l’avez installé, de passer par sudo (faut être administrateur quoi).

Désinstallation de MySQL

Ensuite, on attaque la partie un peu plus dure. J’ai commencé par lister ce qui avait trait à MySQL. Pour ça, la commande est :

Assez propre, rien dans tous les coins, bref, la désinstallation est des plus simples. Par contre, ne pas faire comme moi, et utiliser simplement « mysql-* » comme raccourci, car php5-mysql est aussi désinstallé dans cas, et vos applis php/sites risquent de ne pas aimer :

Voilà, MySQL nettoyé, on peut passer à la suite.

Installation de MariaDB

Je pensais ensuite installer directement MariaDB, car je le pensais vraisemblablement à tort présent dans les dépôts installés. Apparemment ce n’est pas le cas, je me suis donc rendu sur le site officiel, qui propose des miroirs pour l’installation en fonction de votre configuration. A cette adresse donc (https://downloads.mariadb.org/mariadb/repositories/), j’ai indiqué les paramètres suivants, et ils proposent ensuite plusieurs méthodes pour l’ajout des dépôts.

En l’occurence, j’ai choisi d’ajouter un fichier MariaDB.list dans le dossier /etc/apt/sources.list.d/ , avec le contenu suivant :

Ensuite, on met à jour les dépôts :

Oui je sais, je n’ai pas trouvé comment installer manuellement la clé du dépot, car je n’ai pas envie de la récupérer depuis un obscur serveur de clé Ubuntu (je suis sur un miroir français de paquets pour Debian, Ubuntu n’a rien à faire la dedans–oui je peux être très con parfois. Bref, maintenant on peut installer MariaDB :

Note : Attention, pendant l’installation des paquets, il vous demandera de définir le mot de passe superutilisateur du serveur mariaDB, n’hésitez pas soit à ressaisir celui déjà utilisé, soit changez-le pour un mot de passe plus balaise. Mais de toute façon il en faut un.

Premier réflexe, allez modifier le fichier de configuration pour lui indiquer le dossier de travail de Mysql, celui où se trouvent les bases. Eh ben rien, pas de /etc/mariadb. En fait, MariaDB réutilise le fichier de configuration de Mysql, dans le dossier /etc/mysql ! Ce qui veut dire, si vous n’avez pas eu d’erreur quand il a démarré, que vos bases de données sont directement accessibles. Après une courte vérification, c’est bien le cas ! Par ailleurs, les commandes sont les mêmes, et les connecteurs à utiliser pour les différents langages/applications sont ceux déjà en place pour MySQL. Un vrai bonheur qui permet de ne perdre personne en route.

Conclusion

C’est vraiment étonnant, je pensais déjà tout casser comme j’ai souvent l’habitude de le faire (il avait fallu réinstaller Mysql lors du passage Lenny/Squeeze sur ma précédente VM). Ce qui a été un temps le cas puisque comme j’ai utilisé le joker « mysql-* » pour désinstaller MySQL, il m’a gentiment supprimé php5-mysql, un peu embêtant quand on héberge des applications PHP/MySQL justement. Mais au final, la migration est là, le futur aussi, lorsque les mises à jours seront à faire. Car il faut bien rappeler que pour l’instant, MariaDB 5.5 est encore très proche de MySQL 5.5, même si des gains de performances ont déjà été constatés sur certains configurations (vu ma charge, je ne sens rien pour ainsi dire). Bref, une migration pas forcément obligatoire, mais un gage de liberté et de suivi de la sécurité.