Skip to main content

Qu'est-ce que mysqldump et comment l'utiliser?

Can't connect to mysql server [solution] error 2003, 'localhost'(10061) from MySQL Workbench (Mai 2025)

Can't connect to mysql server [solution] error 2003, 'localhost'(10061) from MySQL Workbench (Mai 2025)
Anonim

En tant que l'une des principales bases de données disponibles gratuitement, MySQL est un choix populaire pour toutes sortes d'applications Web. Étant exposée à Internet, votre application est bien sûr exposée à des attaques malveillantes. Si votre serveur est compromis, vous devrez au mieux réinstaller votre application. au pire, vous risquez de perdre entièrement vos données. Vous serez également éventuellement amené à migrer une base de données d'un serveur à un autre.

A quoi sert mysqldump?

le mysqldump outil vous a couvert pour ces deux situations. 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. Une fois exécutées, ces instructions reconstruiront votre base de données à l'état précis dans lequel elle se trouvait lors de l'exécution du vidage.

Afin que vous puissiez utiliser mysqldump prendre les exportations d'une base de données. Celles-ci peuvent être utilisées à des fins de sauvegarde ou parce que vous déplacez la base de données vers un nouvel hôte. Dans les deux cas, vous aurez à un moment donné importation le fichier texte dans un serveur de base de données MySQL. Il exécutera toutes les instructions SQL du fichier, ce qui reconstruira votre base de données à son état d'origine. Cette partie n'utilise pas réellement le mysqldump commande, mais ce ne serait pas possible sans cet utilitaire non plus!

La documentation MySQL répertorie d'autres méthodes de sauvegarde, mais elles présentent toutes des inconvénients:

  • La copie à chaud d'une base de données à partir de MySQL Enterprise est un excellent moyen de réaliser ces sauvegardes … si le prix de l'entreprise ne vous dérange pas.
  • La copie des répertoires de données de la base de données peut s'avérer délicate si vous passez d'un système d'exploitation à l'autre, car leurs destinations seront différentes.
  • L'exportation dans un fichier texte délimité vous donnera le contenu, mais vous devrez recréer vous-même la structure. Et vous feriez mieux de bien le faire …
  • Vous pouvez souvent sauvegarder des bases de données à partir de programmes graphiques tels que MySQL Workbench. Mais il s’agit d’un processus manuel, c’est-à-dire que vous ne pouvez pas créer de script ou l’inclure dans un travail par lots.

Installer l'outil mysqldump

Si cet article vous intéresse, il y a des chances que vous ayez déjà installé MySQL. Si tel est le cas, bonne nouvelle: vous avez déjà mysqldump! Sinon, vous pouvez simplement installer MySQL de manière standard pour votre système d'exploitation.

Pour Windows, consultez nos instructions ici pour installer MySQL sur Windows 7 (le processus d’installation est toujours le même). De même 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 utiliser la commande suivante pour installer le client et les utilitaires MySQL:

sudo apt installer mysql-client

Extraire un dump MySQL

Une fois installé, vous pouvez utiliser mysqldump pour obtenir une sauvegarde complète de votre base de données.

mysqldump -h nom ou adresse IP de votre hôte DB -u nom de l'utilisateur de la base de données -p nom de la base de données> db_backup.sql

Décomposons un peu cette commande:

  • "-h": Ce drapeau est la base de données hôte. Il peut s'agir d'un nom d'hôte complet (par exemple, myhost.domain.com) ou d'une adresse IP. Vous pouvez également laisser ce champ vide si vous l'exécutez sur le même hôte que le serveur MySQL.
  • "-u": Comme mentionné, ceci est votre Nom d'utilisateur.
  • "-p": Si votre installation MySQL est correctement sécurisée, vous aurez besoin d’un mot de passe se connecter. Cet indicateur sans argument vous demandera un mot de passe lorsque vous exécuterez la commande. Parfois, il est utile de fournir votre mot de passe directement en tant qu'argument de cet indicateur, par exemple dans un script de sauvegarde. Mais à l'invite, vous ne devriez pas, car si quelqu'un accédait à votre ordinateur, il pourrait obtenir ce mot de passe dans l'historique de vos commandes.
  • "> db_backup.sql": Cette dernière partie raconte mysqldump diriger toute sa sortie dans un fichier. Normalement, la commande affiche tout directement sur la console, ce qui signifie que de nombreuses instructions SQL vont défiler. Mais au lieu de cela, le symbole *> * est un signe pour canaliser toutes ces choses dans le fichier texte nommé. Et si ce fichier n'existe pas, il sera créé automatiquement.

Quand c'est fini, vous aurez un fichier .SQL. Ceci est juste un fichier texte contenant des instructions SQL. Vous pouvez l'ouvrir dans n'importe quel éditeur de texte pour en examiner le contenu. En regardant une exportation à partir d'une base de données WordPress, vous pouvez voir comment ces fichiers sont assemblés.

Le fichier est divisé en sections. Dans l'image ci-dessus, nous pouvons voir que la première section met en place la table pour les commentaires WordPress. La deuxième section recrée ensuite le contenu (c’est-à-dire les enregistrements de commentaires) qui se trouvait dans ces tables. Lorsque vous réimporterez à nouveau votre vidage MySQL, la commande fonctionnera dans le fichier, en exécutant les instructions et en reconstruisant votre base de données telle quelle. Alors, comment faites-vous cela? Nous allons jeter un coup d'oeil.

Importer un fichier de vidage MySQL

Avant de pouvoir le faire, vous aurez besoin d’une base de données déjà créée et d’un nom d’utilisateur et d’un mot de passe valides. Vous devriez également avoir toutes les autorisations pour la base de données. (À proprement parler, vous n’avez pas besoin de la SUBVENTION autorisation, mais il est plus facile de tout leur accorder.) Vous trouverez des détails sur les autorisations de base de données dans cet article.

Pour réimporter vos données, procédez comme suit:

  1. Connectez-vous au serveur MySQL avec le mysql commander.
  2. Type utilisez nom de la base de données à l'invite, en remplaçant le nom approprié de la base de données.
  3. Entrer source nom du fichier, en remplaçant le nom du fichier de vidage que vous avez pris précédemment.

Une fois que vous avez terminé, vous verrez une longue liste de messages indiquant que les instructions SQL sont en cours d'exécution. Gardez un œil sur les erreurs, mais si vous disposez des autorisations adéquates, tout devrait bien se passer car il s'agit d'une base de données vierge.

Une fois le processus terminé, vous aurez un duplicata de votre base de données d'origine. Vous pouvez le vérifier en effectuant une autre sauvegarde et en comparant les deux sorties. Un bon éditeur de texte pourra le faire pour vous, ou un outil * diff * comme celui présenté dans l'image ci-dessous:

Il n'y a que deux différences entre ces fichiers, telles que représentées par des lignes rouges tout en haut et en bas de la barre de défilement de droite. La première est la ligne qui contient le nom de la base de données et nous nous attendons à ce que ce soit différent car nous les avons nommées différemment. Le second, à la fin, correspond à l'horodatage du fichier de vidage. Et nous nous attendons également à ce que cela soit différent, car nous avons recréé la deuxième base de données 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 également!