Sauvegarder et restaurer une base de données MySQL ou MariaDB à l'aide de SSH
Veuillez utiliser la fonction « Imprimer » au bas de la page pour créer un PDF.
Pour les packs Linux d'hébergement Web
Dans cet article, nous vous montrons comment sauvegarder et restaurer des bases de données MySQL et MariaDB via votre accès shell. Vous utilisez pour cela les programmes en ligne de commande mysqldump et mysql, qui sont déjà installés par défaut dans vos packs d'hébergement Web Linux et sur les serveurs Managed.
Remarque
Les procédures décrites ici conviennent également aux grandes bases de données avec des volumes de données supérieurs à 1 Go (gigaoctet).
Conditions préalables
Vous disposez d'un pack d'hébergement Web avec accès shell (ou d'un serveur Managed).
Vous avez besoin des données d'accès à votre base de données (nom d'hôte, nom de la base de données, nom d'utilisateur, mot de passe).
Pour une restauration, les données doivent être disponibles sous la forme d'un fichier de sauvegarde au format SQL (SQL-Dump).
Des connaissances de base de l'utilisation du shell Linux sont recommandées.
Sauvegarder la base de données avec mysqldump
L'outil mysqldump crée un fichier de sauvegarde contenant des commandes SQL qui permettent de reconstruire la structure de la base de données et de restaurer les données. La sauvegarde ainsi créée peut ensuite être facilement réimportée dans une base de données à l'aide du client MySQL afin de restaurer les données.
Pour sauvegarder votre base de données avec mysqldump :
Établissez une connexion SSH à votre espace Web. Effectuez ensuite les étapes suivantes dans la fenêtre du terminal.
Pour effectuer une sauvegarde complète de votre base de données, exécutez la commande mysqldump selon le schéma suivant :
mysqldump --no-tablespaces --host=HOSTNAME --user=BENUTZERNAME --password=PASSWORT DATENBANKNAME > DATEI
Remplacez les caractères génériques en majuscules par les données d'accès de la base de données que vous souhaitez sauvegarder. Saisissez également le nom souhaité pour votre fichier de sauvegarde.
Exemple :
mysqldump --no-tablespaces --host=db1234567890.hosting-data.io --user=dbu654321 --password=2gCjmnrmLkxnSefw dbs7654321 > dbs7654321_dump_29-04-2024.sql
Votre fichier de sauvegarde est créé et enregistré dans le répertoire où vous avez exécuté la commande mysqldump. Selon la quantité de données, cela peut prendre un certain temps. Vous pouvez ensuite télécharger le fichier et le conserver dans un endroit sûr.
Attention
Ne fermez pas la fenêtre du terminal tant que la sauvegarde n'est pas terminée. Dans le cas contraire, le processus sera interrompu.
Restaurer la base de données avec le client MySQL
Téléchargez le fichier de sauvegarde sur votre espace web à l'aide d'un programme FTP.
Etablissez une connexion SSH avec votre espace Web. Exécutez ensuite les étapes suivantes dans la fenêtre du terminal.
Si votre fichier de sauvegarde se trouve dans un répertoire, passez dans le répertoire correspondant.
Pour restaurer vos données, exécutez la commande mysql selon le schéma suivant :
mysql --host=HOSTNAME --user=BENUTZERNAME --password=PASSWORT DATENBANK < DATEINAME
Remplacez les caractères de remplacement écrits en majuscules par les données d'accès de la base de données dans laquelle vous souhaitez restaurer les données.
Exemple :
mysql --host=db1234567890.hosting-data.io --user=dbu654321 --password=2gCjmnrmLkxnSefw dbs7654321 < dbs7654321_dump_29-04-2024.sql
Le fichier de sauvegarde est au format gzip (.gz).
Si le fichier est compressé au format gzip, combinez la commande mysql avec la commande gunzip selon le schéma suivant :
gunzip -c DATEINAME | mysql --host=HOSTNAME --user=BENUTZERNAME --password=PASSWORT DATENBANK
Exemple :
gunzip -c dbs7654321_dump_29-04-2024.sql.gz | mysql --host=db1234567890.hosting-data.io --user=dbu654321 --password=2gCjmnrmLkxnSefw dbs7654321
Résolution des problèmes
Vous trouverez ci-dessous des propositions de solutions pour les erreurs typiques qui peuvent survenir lors de l'exécution des étapes d'instructions.
Utilisation de caractères spéciaux
Si vos noms de fichiers, mots de passe ou noms d'utilisateurs contiennent des caractères spéciaux, vous devez les inclure dans la commande mysqldump ou mysql entre '-caractères (apostrophe).
Exemple : mysqldump [...] --password='%gCjmnrmLk!xnSefw'
Messages d'erreur : mysqldump
- mysqldump : Got error : 1044 : "Access denied for user [...] to database [...]
Cette erreur se produit par exemple lorsque le nom de la base de données indiqué ne peut pas être attribué.
Solution proposée : Vérifiez que le nom de la base de données est correct. Veillez à respecter les majuscules et les minuscules. - mysqldump : Got error : 1045 : "Access denied for user [...]
Cette erreur se produit lorsqu'un utilisateur tente de se connecter à MySQL avec des données d'accès (nom d'utilisateur et/ou mot de passe) non valides.
Solution proposée : Vérifiez que le nom d'utilisateur et le mot de passe sont corrects. Veillez à respecter les majuscules et les minuscules. - mysqldump : Got error : 2005 : "Unknown MySQL server host [...]
Cette erreur se produit lorsque MySQL ne parvient pas à se connecter au serveur de base de données indiqué.
Solution proposée : Vérifiez que le nom d'hôte ne comporte pas de faute de frappe.
Messages d'erreur : Client MySQL
- ERROR 1044 (42000) at line X : Access denied for user [...]
Cette erreur se produit lorsqu'un utilisateur tente d'effectuer une action pour laquelle il n'a pas l'autorisation. Selon la manière dont le fichier de sauvegarde a été créé, il peut par exemple aussi contenir l'instruction de créer une base de données, ce qui n'est pas possible ici, mais pas non plus nécessaire. Ce qu'il faut faire dans ce cas est expliqué dans l'article 1044 - Corriger l'erreur "Access denied" lors de l'importation d'une base de données MySQLest décrit. - ERREUR 1045 (28000) : Access denied for user [...]
Cette erreur se produit lorsqu'un utilisateur tente de se connecter à MySQL avec des données d'accès (nom d'utilisateur et/ou mot de passe) non valides.
Solution proposée : vérifiez que le nom d'utilisateur et le mot de passe sont corrects. Veillez à respecter les majuscules et les minuscules. - ERREUR 2005 (HY000) : Unknown MySQL server host [...]
Cette erreur se produit lorsque MySQL ne peut pas se connecter au serveur de base de données indiqué.
Solution proposée : Vérifier qu'il n'y a pas de faute de frappe dans le nom d'hôte.
Ignorer les erreurs Mysql
Vous pouvez demander au client MySQL d'ignorer les erreurs avec le paramètre -force. Cela signifie que même si des erreurs se produisent, le processus d'importation ne s'arrête pas. Au lieu de cela, le client essaie de continuer avec les commandes ou les enregistrements suivants.
Exemple :
mysql –force --host=db1234567890.hosting-data.io --user=dbu654321 --password=2gCjmnrmLkxnSefw dbs7654321 < dbs7654321_dump_29-04-2024.sql
Attention
Comme les erreurs sont ignorées, l'utilisation de -force peut entraîner des problèmes d'intégrité des données. Certains enregistrements peuvent être erronés ou manquants, ce qui peut nuire à la qualité globale de la base de données. Il est recommandé d'effectuer des validations après l'importation afin de s'assurer que toutes les données ont été importées correctement.