Remplacement d’une distribution native de MySQL avec le dépôt MySQL APT et mise à jour vers MySQL 8.0

Chaque système d’exploitation, tel Ubuntu 18.04 LTS Bionic dispose d’un installeur et d’un dépôt contenant une ou plusieurs versions de MySQL. On est cependant bloqué lorsque l’on veut mettre à jour à une version supérieure à celle proposée par le dépôt. Pour Ubuntu Bionic, la version du serveur MySQL est la 5.7.31. L’objectif est d’installer le dépôt issu de Oracle MySQL et de remplacer la version installée de mysql-server par la même version issue du dépôt MySQL APT. Ainsi, il sera plus simple de mettre à jour MySQL à une version supérieure. J’ai été confronté à un plantage d’installation de la version 8.0 de MySQL. Bien entendu, j’ai été obligé de revenir en arrière vers la version 5.7.

Sur fond de plage méxicaine, le logo Ubuntu, et les textes MySQL APT, version, bionic.

J’installe donc juste le dépôt MySQL APT, l’objectif à terme étant de mettre à jour MySQL à la version 8.0. L’avantage de ce dépôt est de pouvoir choisir la version MySQL, très pratique pour effectuer des tests sur les requêtes.

Sauvegarde des données

Sauvegarde physique

Avant tout chose, on sauvegarde les données, en sauvegardant tous les dossiers de /var/lib commençant par mysql : /var/lib/mysql, /var/lib/mysql_backup, /var/lib/mysql-keyring, mysql-upgrade. C’est ce que l’on appelle une sauvegarde physique, beaucoup plus rapide qu’une sauvegarde base par base avec mysqldump. En réinstallant la même version de mysql-server, pour moi, la 5.7.31, les données pourront être récupérées rapidement.

Script de sauvegarde physique

Script SHELL à exécuter avec sudo, à l’endroit où se trouve le script. Un fichier compressé est crée portant le nom mysql-folders-YYYY-MM-DD_HHMMSS.tar.gz dans le répertoire courant.

On peut arrêter le serveur http pendant la sauvegarde, cela évitera que des fichiers changent pendant qu’ils sont sauvegardés.

Puisque l’on sauvegarde des fichiers système, on doit lancer le shell avec sudo, le fichier shell ayant été rendu exécutable. On suppose que le nom de fichier est backup-mysql-folders.sh :

Une fois la sauvegarde effectuée, on peut relancer le serveur :

Sauvegarde logique avec mysqldump

On écrit un script SHELL pour faire le travail. Il consistera de dumper toutes les bases personnelles au format .sql, hors celles du système avec mydsqldump, afin de pouvoir les restaurer. L’objectif est alors d’obtenir autant de fichier .sql que l’on a de bases personnelles :

Script de sauvegarde logique avec mysqldump

On pourrait ajouter une commande pour uploader l’archive obtenue sur un serveur de sauvegarde. Je montrerai cela dans un nouvel article. De même, on peut arrêter le serveur http pendant cette opération.

Ajouter le dépôt MySQL APT

On va d’abord sur la page du dépôt MySQL APT et l’on télécharge le fichier d’installation .deb. L’adresse du fichier .deb est https://repo.mysql.com/nom-du-fichier.deb, le nom du fichier est donné sur la page : mysql-apt-config_0.8.15-1_all.deb.

MySQL Community Downloads APT Repository page

On télécharge ce fichier d’installation sur le serveur :

Installation

On installe alors le paquet package :

Pendant l’installation, des écrans demandent de choisir la version du serveur MySQL à installer avec le dépôt. Les options par défaut sont surlignées.

Premier écran, on laisse l'option par défaut pour rester avec une version déjà installée par apt du repository apt de Ubuntu

On pourra toujours changer les versions plus tard, pour mettre à jour à une version supérieure. Pour accepter un choix que l’on a surligné, on appuie sur Entrée. À la fin, lorsque les choix sont faits, on surligne OK et l’on appuie sur Entrée.

En principe, pour régler les dépendances brisées d’un paquet installé avec dpkg -i, on lance :

Normalement, on n’a pas à le faire, mais c’est une précaution supplémentaire.

On met alors à jour les informations de apt avec le dépôt MySQL APT :

On peut maintenant voir la version de mysql-server, prête à être installée :

Il faut impérativement arrêter le serveur MySQL :

Et on lance l’installation, cela se passe bien. On a toujours mySQL 5.7, mais le dépôt a changé, c’est maintenant MySQL Community Server. On peut installer mySQL 8.0.

Mise à jour vers mySQL 8.0

On relance le dépôt MySQL APT pour sélectionner la version mysql 8.0 du serveur de base de données.

On sélectionne mySQL Server & Cluster :

Ecraan d'option, la version actuelle de mySQL est la 5.7

On appuie sur Entrée, et l’on sélectionne la version mysql 8.0 :

On sélection la version mysql-8.0 et l'on appuie sur Entrée

Sur le dernier écran, on sélectionne OK et l’on appuie sur Entrée.

On met à jour le cache APT :

On peut alors vérifier la version du serveur MySQL candidate à l’installation :

Installation

Le serveur MySQL doit être impérativement stoppé :

On installe mysql 8.0. On a bien arrêté le serveur mysql.

On répond donc Y. Et c’est parti …

J’ai bien cru l’installation avait plantée à un moment, car cela n’avançait plus, mais c’est arrivé à terme. J’ai relancé mysql , quoique je pense qu’il était déjà parti, et j’ai pu enregistrer et finir cet article.

Et hop, MySQL 8.0.21 est installé.

Soumettre un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables.