Qu’est-ce que mysqldump et comment l’utiliser ?
En tant que l’une des principales bases de données gratuites, MySQL est un choix populaire pour de nombreuses applications Web. Exposez-vous à Internet et votre application peut être attaquée de manière malveillante. Si votre serveur est compromis, vous devrez au mieux réinstaller l’application ; au pire, vous risquez de perdre des données. De plus, vous pouvez rencontrer des situations où vous devez migrer votre base de données d’un serveur à un autre.
A quoi sert mysqldump ?
L’outil mysqldump couvre les compromis de serveur et les scénarios de migration. Sa fonction de base est de prendre une base de données MySQL et de la vider sous forme de fichier texte. Mais pas n’importe quel fichier texte ; le fichier est un ensemble d’instructions SQL. Ces instructions, lorsqu’elles sont exécutées, reconstruisent la base de données dans l’état exact où elle se trouvait lorsque le vidage a été effectué.
Utilisez mysqldump pour créer une exportation de la base de données en tant que sauvegarde ou lors du déplacement de la base de données vers un nouvel hôte. Dans les deux cas, le fichier texte sera réimporté dans le serveur de base de données MySQL. Il exécutera toutes les instructions SQL du fichier, reconstruisant ainsi la base de données dans son état d’origine. Cette partie n’utilise pas la commande mysqldump, mais cela ne serait pas possible sans cet utilitaire.
La documentation MySQL répertorie d’autres méthodes pour effectuer des sauvegardes, mais ces méthodes présentent des inconvénients :
- La copie à chaud d’une base de données à partir de MySQL Enterprise est un excellent moyen d’implémenter ces sauvegardes – si le prix de l’entreprise ne vous dérange pas.
- La copie du répertoire de données de la base de données lors du déplacement entre les systèmes d’exploitation peut être délicate car la destination varie.
- L’exportation vers un fichier texte délimité vous donnera le contenu, mais vous devrez recréer la structure.
- Vous pouvez généralement sauvegarder votre base de données à partir d’un programme GUI tel que MySQL Workbench. Mais il s’agit d’un processus manuel ; pas quelque chose que vous pouvez scripter ou inclure dans un travail par lots.
Installer l’outil mysqldump
Pour Windows, consultez nos instructions d’installation de MySQL sur Windows 7 (le processus d’installation est le même que pour Windows 10). Sur macOS, consultez nos instructions pour installer MySQL sur macOS 10.7 (encore une fois, plus ancien mais toujours applicable). Les utilisateurs de systèmes Linux basés sur Ubuntu peuvent installer le client et les utilitaires MySQL avec les commandes suivantes :
sudo apt installer client mysql
Extraire le vidage MySQL
Après l’installation, utilisez mysqldump pour obtenir une sauvegarde complète de la base de données.
mysqldump-h [your DB host’s name or IP] -u [the DB user’s name] -p [the database name] > db_backup.sql
Voici les descriptions des drapeaux utilisés dans cette commande :
- -H: Ce drapeau est l’hôte de la base de données. Il peut s’agir d’un nom d’hôte complet (par exemple, myhost.domain.com) ou d’une adresse IP. Laissez-le vide si vous exécutez la commande sur le même hôte que le serveur MySQL.
- -u: votre nom d’utilisateur.
- -p: Si vous avez correctement sécurisé votre installation MySQL, vous aurez besoin d’un mot de passe pour vous connecter. Cet indicateur sans argument vous demande un mot de passe lorsque vous exécutez la commande. Parfois, il est utile de fournir le mot de passe directement comme argument à cet indicateur, par exemple, dans les scripts de sauvegarde. Mais à l’invite, vous ne devriez pas, car si quelqu’un accède à votre ordinateur, il peut obtenir ce mot de passe dans l’historique des commandes.
- > db_backup.sql: Cette partie indique à mysqldump de diriger sa sortie vers un fichier. Normalement, la commande affiche tout sur la console, ce qui signifie que vous verrez plusieurs instructions SQL à l’écran. Le symbole > agrège la sortie dans le fichier texte spécifié. Si ce fichier n’existe pas, il sera créé automatiquement.
Une fois cela fait, vous aurez un fichier .SQL. Il s’agit d’un fichier texte contenant des instructions SQL. Vous pouvez l’ouvrir dans n’importe quel éditeur de texte pour inspecter le contenu. Voici un fichier exporté de la base de données WordPress montrant comment les fichiers s’emboîtent.
Le fichier est divisé en plusieurs sections. La première partie configure le formulaire pour les commentaires WordPress. La deuxième partie recrée le contenu de ces tables (ici, les enregistrements de commentaires). Lorsque vous réimportez le vidage MySQL, la commande traite le fichier, exécute l’instruction et reconstruit la base de données telle quelle.
Importer le fichier de vidage MySQL
Avant d’importer le fichier de vidage, vous avez besoin d’une base de données déjà créée avec un nom d’utilisateur et un mot de passe valides. Vous devez également disposer de toutes les autorisations sur la base de données. Vous n’avez pas besoin d’autorisations GRANT, mais il est plus facile d’accorder toutes les autorisations.
Pour réimporter les données, connectez-vous au serveur MySQL à l’aide de la commande suivante mysql Commande.taper utiliser [database name] à l’invite et remplacez le nom de la base de données.Entrer la source [filename]et remplacez le nom du fichier de vidage que vous avez obtenu plus tôt.
Une fois terminé, une liste de messages apparaît indiquant que l’instruction SQL est en cours d’exécution. Gardez un œil sur les erreurs, mais si vous avez les bonnes autorisations, tout devrait bien se passer.
Une fois le processus terminé, vous aurez une copie de la base de données d’origine. Pour vérifier la similarité entre les bases de données, effectuez un autre vidage et comparez les deux sorties. Utilisez un éditeur de texte ou un outil de comparaison dédié pour comparer les deux fichiers.
Il existe deux différences entre ces fichiers, comme indiqué par les lignes rouges en haut et en bas de la barre de défilement à droite. La première est la ligne contenant le nom de la base de données, qui est différente car les fichiers sont nommés différemment. Le second est l’horodatage du fichier de vidage. Ceci est différent car la deuxième base de données est recréée après la première. Sinon, les fichiers sont exactement les mêmes, ce qui signifie que les bases de données qui les ont générés le sont aussi.
FAQ
-
Comment corriger l’erreur mysqldump : Accès refusé lors de l’utilisation de tables verrouillées ?
Demandez à votre administrateur de base de données de vous accorder l’autorisation LOCK.Si cela ne résout pas le problème, essayez d’exécuter la même commande mysqldump en ajoutant –Transaction unique drapeaux, tels que [$ mysqldump –single-transaction] [-u user] [-p DBNAME ] > sauvegarde.sql.
-
Pouvez-vous utiliser la clause « where » dans mysqldump ?
Utilisez la clause WHERE lors de la création d’une sauvegarde contenant uniquement des lignes répondant à une condition donnée.Par exemple, pour vider les données uniquement des lignes avec une colonne id supérieure à 100, entrez « mysqldump my_db_name my_table_name –where= »id > 100″ > my_backup.sql ».
Merci de nous en informer!
Dites-nous pourquoi !
D’autres détails ne sont pas assez difficiles à comprendre