mysqldump是mysql自带的逻辑备份工具,是mysql的客户端命令。
其备份的文件内容可以看到主要是,先根据备份的数据表结构创建数据表,再有一条INSERT INTO语句写入所有的数据
1、mysqldump备份相关的操作
1、备份指定的数据库-database的表与数据
C:\Users\qq-5201351> mysqldump -uroot -p mydb > ./mydb-dump-20230710.sql
然后查看文件,可以看到内容如下:
-- MySQL dump 10.13 Distrib 8.0.30, for Win64 (x86_64) -- -- Host: localhost Database: aws -- ------------------------------------------------------ -- Server version 8.0.30 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!50503 SET NAMES utf8mb4 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Table structure for table `aws_ec2_price` -- DROP TABLE IF EXISTS `aws_ec2_price`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `aws_ec2_price` ( `os_type` varchar(50) DEFAULT NULL, `instance_type` varchar(30) DEFAULT NULL, `vcpu` smallint DEFAULT NULL, `memory` int DEFAULT NULL, `year` tinyint DEFAULT NULL, `ri_price` int DEFAULT NULL, `scope` varchar(10) DEFAULT NULL, `od_price` double DEFAULT NULL, `ReservedInstancesOfferingId` varchar(50) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `aws_ec2_price` -- LOCK TABLES `aws_ec2_price` WRITE; /*!40000 ALTER TABLE `aws_ec2_price` DISABLE KEYS */; INSERT INTO `aws_ec2_price` VALUES ('Red Hat Enterprise Linux','c3.2xlarge',8,15360,1,18767,'Region',5.026,'65e74e45-fb81-4a55-baba-63f0bddfb25f'),('Red Hat Enterprise Linux','c3.4xlarge',16,30720,1,30597,'Region',9.243,'8d97e58b-8070-446f-aa26-b3dd2f83370b'); /*!40000 ALTER TABLE `aws_ec2_price` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2023-07-10 9:33:16
备份有时可能还会用到如下几个操作(未测试)
1.备份所有数据库(包括mysql和test): mysqldump -uroot -ppwd --all-databases > ./all-databases-dump.sql 2.备份指定数据库指定表(多个表以空格隔开): mysqldump -uroot -ppwd mydb table01 table02 > ./mydb-part.sql 3.备份指定数据库排除某些表: mysqldump -uroot -ppwd mydb --ignore-table=mydb.tb1 --ignore-table=mydb.tb2 > ./mydb-part.sql
2、mysqldump还原相关的操作
1、对于单库的备份文件,进行还原,需要先创建一个空的数据库,如mydb02
mysql -uroot -ppwd mydb02 < ./mydb-dump-20230710.sql
2、使用source用法,这个需要先进入到数据库
[root@qq-5201351 ~]# mysql -uroot -p mysql> use my_db02 mysql> source /path/db_back.sql
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17540227.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!