Base de données de sauvegarde MySQL mysqldump (avec exemples)

La fonction principale de la base de données est de sauvegarder et de conserver les données. La sauvegarde des données est donc l'opération la plus couramment utilisée dans la gestion des bases de données. Afin d'éviter la perte de données causée par une panne accidentelle de la base de données ou des dommages matériels, le système de base de données propose des stratégies de sauvegarde et de récupération.

L'une des mesures les plus importantes pour garantir la sécurité des données consiste à sauvegarder régulièrement la base de données. De cette façon, même si un accident survient, les pertes seront minimisées.

La sauvegarde de la base de données consiste à effectuer une copie de la base de données en exportant des données ou en copiant des fichiers de table. Lorsque la base de données tombe en panne ou est détruite, la base de données de sauvegarde est chargée dans le système, afin que la base de données puisse être restaurée du mauvais état à l'état correct au moment de la sauvegarde.

Deux méthodes de sauvegarde sont fournies dans MySQL, à savoir la commande mysqldump et le script mysqlhotcopy. Puisque mysqlhotcopy ne peut être utilisé que pour les tables MyISAM, MySQL 5.7 a supprimé le script mysqlhotcopy.

Cette section présente principalement comment utiliser la commande mysqldump pour sauvegarder la base de données.

Lorsque la commande mysqldump est exécutée, les données de la base de données peuvent être sauvegardées sous forme de fichier texte. La structure et les données de la table de données seront stockées dans le fichier texte généré.

sauvegarder une base de données

La syntaxe de sauvegarde d'une base de données à l'aide de la commande mysqldump est la suivante :

mysqldump -u username -p dbname [tbname ...]> filename.sql

La description des paramètres de syntaxe ci-dessus est la suivante :

  • nom d'utilisateur : indique le nom d'utilisateur ;
  • dbname : Indique le nom de la base de données à sauvegarder ;
  • tbname : indique les tables de données de la base de données qui doivent être sauvegardées et plusieurs tables de données peuvent être spécifiées. Lorsque ce paramètre est omis, la base de données entière sera sauvegardée ;
  • Flèche droite ">" : utilisée pour indiquer à mysqldump d'écrire la définition et les données de la table de données de sauvegarde dans le fichier de sauvegarde ;
  • filename.sql : indique le nom du fichier de sauvegarde, et un chemin absolu peut être ajouté devant le nom du fichier. Habituellement, la base de données est sauvegardée sous forme de .sqlfichier avec le suffixe .

Remarque : Le fichier sauvegardé par la commande mysqldump ne nécessite pas nécessairement un suffixe de nom .sqlet il est également possible de sauvegarder des fichiers dans d'autres formats. Par exemple, .txtles fichiers avec le suffixe . Normalement, il est recommandé de sauvegarder .sql un fichier avec un suffixe. Parce que .sqlle fichier avec le suffixe donne la première impression qu'il s'agit d'un fichier lié à la base de données.

Exemple 1

Utilisez ensuite l'utilisateur root pour sauvegarder la table des étudiants sous la base de données de test. Ouvrez la fenêtre de ligne de commande (cmd), entrez la commande de sauvegarde et le mot de passe, le processus de fonctionnement est le suivant :

C:\Windows\system32>mysqldump -uroot -p test student>C:\student.sql
Enter password: ****

Remarque : La commande mysqldump doit être exécutée dans la fenêtre cmd et ne peut pas être exécutée dans le service MySQL.

Après avoir entré le mot de passe, MySQL sauvegardera la table de données des étudiants sous la base de données de test. Après cela, vous pouvez afficher les fichiers que vous venez de sauvegarder dans le chemin spécifié. Une partie du fichier student.sql est la suivante :

-- MySQL dump 10.13  Distrib 5.7.29, for Win64 (x86_64)
--
-- Host: localhost    Database: test
-- ------------------------------------------------------
-- Server version 5.7.29-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
--此处删除了部分内容
--
-- Table structure for table `student`
--

DROP TABLE IF EXISTS `student`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `student` (
  `id` int(4) NOT NULL,
  `name` varchar(20) DEFAULT NULL,
  `stuno` int(11) DEFAULT NULL,
  `age` int(4) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `student`
--

LOCK TABLES `student` WRITE;
/*!40000 ALTER TABLE `student` DISABLE KEYS */;
INSERT INTO `student` VALUES (1,'zhangsan',23,18),(2,'lisi',24,19),(3,'wangwu',25,18),(4,'zhaoliu',26,18);
/*!40000 ALTER TABLE `student` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
......
-- Dump completed on 2019-03-09 13:03:15

Le début du fichier student.sql enregistre la version de MySQL, le nom d'hôte de sauvegarde et le nom de la base de données.

Dans le fichier, tous les commentaires commençant par "--" sont en langage SQL. Les commentaires commençant par "/*!40101", etc. sont liés à MySQL. 40101 est le numéro de version de la base de données MySQL, ici cela signifie MySQL 4.1.1. Si la version de MySQL est supérieure à 4.1.1 lors de la restauration des données, le contenu entre "/*!40101" et "*/" sera exécuté sous forme de commandes SQL. S'il est inférieur à 4.1.1, le contenu entre "/*!40101" et "*/" est traité comme des commentaires. Le contenu de "/*!" et "*/" sera ignoré en tant que commentaires dans d'autres bases de données, ce qui peut améliorer la portabilité de la base de données.

L'instruction DROP, l'instruction CREATE et l'instruction INSERT sont toutes utilisées lors de la restauration de la base de données ; l'instruction "DROP TABLE IF EXISTS 'student'" est utilisée pour déterminer s'il existe une table nommée student dans la base de données, et si elle existe , supprimez cette table ; l'instruction CREATE utilise Pour créer la table étudiant ; l'instruction INSERT est utilisée pour restaurer toutes les données. L'heure de sauvegarde est enregistrée à la fin du fichier.

Remarque : Il n'y a aucune instruction pour créer une base de données dans le fichier student.sql ci-dessus, donc toutes les tables et enregistrements du fichier student.sql doivent être restaurés dans une base de données existante. Lors de la restauration des données, l'instruction CREATE TABLE crée une table dans la base de données, puis exécute l'instruction INSERT pour insérer des enregistrements dans la table.

sauvegarder plusieurs bases de données

Si vous souhaitez utiliser la commande mysqldump pour sauvegarder plusieurs bases de données, vous devez utiliser le paramètre --databases. La syntaxe de sauvegarde de plusieurs bases de données est la suivante :

mysqldump -u username -P --databases dbname1 dbname2 ... > filename.sql

Après avoir ajouté le paramètre "--databases", au moins un nom de base de données doit être spécifié et plusieurs noms de bases de données sont séparés par des espaces.

Exemple 2

Utilisez ensuite l'utilisateur root pour sauvegarder la base de données de test et la base de données mysql. La commande est la suivante :

mysqldump -u root -p --databases test mysql>C:\testandmysql.sql

Après exécution, vous pouvez C:\voir ci-dessous le fichier nommé testandmysql.sql, qui stocke les informations des deux bases de données.

sauvegarder toutes les bases de données

Le format de syntaxe de la commande mysqldump pour sauvegarder toutes les bases de données est le suivant :

mysqldump -u username -P --all-databases>filename.sql

Lorsque vous utilisez le paramètre "--all-databases", vous n'avez pas besoin de spécifier le nom de la base de données.

Exemple 3

Utilisez ensuite l'utilisateur root pour sauvegarder toutes les bases de données. La commande est la suivante :

mysqldump -u root -p --all-databases > C:\all.sql

Après l'exécution, vous pouvez  C:\voir ci-dessous le fichier nommé all.sql, qui stocke les informations de toutes les bases de données.

Guess you like

Origin blog.csdn.net/Itmastergo/article/details/130821423