使用mysqldump命令对MySQL数据库进行备份与还原操作

发布时间 2023-07-10 10:38:39作者: 520_1351

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