Mettre à jour MySQL sous Debian

Vous gérez un serveur avec le SGBD MySQL installé dessus dans une version un peu old school et vous aimeriez le mettre à jour ? Alors vous êtes pile poil au bon endroit, mais tout d’abord : La preuve en image !

Upgrade mysql sous debian ou when mysql 5.7 meets debian 8

 

Comment faire l’upgrade de mysql sous un serveur debian ou sous un linux classique type ubuntu ?

L’exemple utilisé pour réaliser ce mini tutoriel est basé sous Debian en version 8, aka Jessie, avec MySQL en version 5.5 et phpmyadmin. Mais cela devrait tout aussi bien fonctionner si vous souhaitez passer de la 5.6 à la 5.7 et si vous utilisez une autre version de Debian ou un Ubuntu.

Pour commencer, de quoi avons nous besoin :

  • Un serveur ou une machine sous Linux
  • Le gestionnaire de paquets Aptitude (si vous utilisez autre chose, à vous de voir comment gérer vos lancements)
  • MySQL installé dans une version dépassée, genre 5.5 ou antérieure
  • Un accès SSH à votre serveur ou l’accès au terminal sous Linux (putty ou équivalent si vous vous connectez à partir d’une winbouse)
  • Les droits d’accès au super utilisateur root
  • Au moins 1 doigt, les 2 mains étant un réel confort

On va essayer de faire bref et de faire le tour des éventuels problèmes rencontrés, bon évidemment je n’ai pas été confronté à l’ensemble des problèmes possibles et imaginables lors de mes upgrade, donc si ça ne se passe pas comme vous voulez lors de votre mise à jour, laissez un commentaire en détaillant le problème et on essaiera d’y trouver une solution.

Les étapes de la mise à jour de MySQL sous Debian

Dans l’ordre nous allons sauvegarder votre MySQL actuel, on part du principe qu’il fonctionne, qu’il y a des données dedans (sinon il suffit de le supprimer violemment hein) et que vous êtes déjà connecté à votre serveur et que vous vous trouvez à la racine, c’est à dire dans ~.

Oh, et pour les commandes, on part du principe que vous êtes root donc je ne mets pas de sudo devant chaque commande (et pour passer en root si vous êtes loggé avec votre user il suffit de lancer un « su – » et d’avoir le mot de passe root, of course.

1 – Sauvegarde de toutes les données MySQL (la configuration, les fichiers et les bases de données)

A faire en priorité pour éviter tout problème. On commence par créer un dossier qui contiendra les backup :

mkdir backup

Ensuite on balance dans le dossier une copie de toutes les BDD, des fichiers de configuration et du dossier « mysql » avec tout les fichiers qu’il contient.

tar cvfvz backup/mysql_conf.tgz /etc/mysql
sh -c ‘mysqldump -u root -p -A –events > backup/backup_db.sql’
tar cvfvz backup/mysql_data.tgz /var/lib/mysql

2 – On met tout le bouzin à jour

La chose la plus simple à faire et que je vous recommande de faire avant chaque installation :

apt-get update

Cela permet de récupérer les dernières versions des paquets. Et pour les plus fougueux d’entre vous, on peut même s’offrir le luxe de faire quelques mises à jour au passage :

apt-get upgrade

Si vous voulez (et que vous êtes tout foufou), vous pouvez même faire les deux d’un coup :

apt-get update && apt-get upgrade

3 – On arrête MySQL et on le supprime du serveur de manière clean (optionnel)

service mysql stop

La suppression de l’ancienne version de MySQL n’est pas obligatoire, l’outil d’installation vous proposera de remplacer l’ancienne version par la nouvelle, mais c’est beaucoup plus propre et permet d’éviter d’éventuels conflits donc je vous le recommande fortement. Et pour ce faire :

apt-get remove mysql-server mysql-client mysql-common
apt-get autoremove
apt-get autoclean

4 – On ré-installe une dépendance nécessaire à l’installation de MySQL

Puisque les commandes précédentes ont supprimé MySQL et ses dépendances, il faut à minima en réinstaller une (trois en réalité, mais nous verrons cela plus tard) pour le faire fonctionner.

apt-get install libaio1

5 – On télécharge l’installeur de MySQL et on le lance

Pour obtenir le lien vers la dernière version de l’installeur de MySQL, rendez-vous sur le site officiel ici https://dev.mysql.com/downloads/repo/apt/ et cliquez sur le bouton « Download » en bas de la page. Vous arriverez alors sur une nouvelle page, récupérer l’URL du lien « No thanks, just start my download » (via un clic droit et « Copier l’adresse du lien »), c’est cette URL qui va nous servir. Donc nous sommes toujours à la racine du serveur, on fait :

wget https://dev.mysql.com/get/mysql-apt-config_0.8.7-1_all.deb (remplacez cette URL par celle que vous venez de copier)

dpkg -i mysql-apt-config_0.8.7-1_all.deb (remplacer le nom du fichier par le votre, le plus simple étant d’écrire « mysql » et de tabuler)

Là vous avez une belle fenêtre bleue qui s’ouvre et vous propose plusieurs choix (qui dépendent de la version de l’installeur). Choisissez l’option qui inclue le serveur (celle ou il est écrit « server » hein, logiquement le premier choix), puis vous devez choisir la version. Si vous étiez en 5.5 vous devriez pouvoir passer en 5.6, 5.7 ou d’autres version en beta (qu’il vaut mieux éviter, surtout sur un serveur de prod..). Prenez donc la dernière version stable (dans mon cas la 5.7), quitte à mettre à jour, autant aller jusqu’au bout. Enfin, vous revenez sur le premier écran avec le choix de l’installation, rassurez-vous, c’est normal et si vous revalider vous allez tourner en boucle.. Contentez-vous de choisir « OK« , voilà, c’est fini.

6 – On met à jour MySQL, on l’installe et on démarre le service

apt-get update

apt-get install mysql-server

service mysql start

Là logiquement, vos sites devraient à nouveau fonctionner mais vous n’aurez pas accès à phpMyAdmin (c’est normal pour l’instant). Si ce n’est pas le cas, il faut peut être restaurer votre base de données via le backup fait en tout début de tuto :

mysql -u root -p < backup/backup_db.sql

7 – On ajoute les extensions et on met à jour la base d’informations pour pouvoir accéder à phpMyAdmin

C’est l’une des erreurs que l’on rencontre le plus souvent lors d’une mise à jour de MySQL, mais en même temps c’est normal puisque nous avons désinstallé les paquets.. Donc on réinstalle les paquets nécessaires au bon fonctionnement de l’outil et on met à jour la base d’information :

apt-get install php5-mysql php5-mysqlnd

mysql_upgrade -u root -p

8 – Pour finir, on redémarre les services et on test

Pour que tout fonctionne correctement, il faut redémarrer les services (avec restart et pas reload qui ne sera pas suffisant) :

service apache2 restart

service mysql restart

Normalement vous devriez pouvoir accéder à votre phpMyAdmin sans erreur, sinon n’hésitez pas à m’en faire part en utilisant les commentaires ci-dessous. Ma société peut également s’occuper de sous-traiter cette tâche (et bien d’autres) pour vous si vous n’avez pas le temps, l’envie ou les compétences pour le faire, contactez-moi directement pour plus d’infos à ce sujet.

A propos de Tony (33 Posts)

Développeur Web et consultant SEO, je vous invite à venir échanger et partager sur ce vaste sujet. Je vous propose également mes services en référencement naturel, afin d'améliorer la visibilité de votre site Internet.


Leave a Reply