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

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.