首页 > 数据库 >使用mysqldump对Mysql进行备份

使用mysqldump对Mysql进行备份

时间:2023-03-19 18:31:47浏览次数:47  
标签:SET OLD -- 备份 mysql leo mysqldump Mysql root

文档课题:使用mysqldump对Mysql进行备份.
1、理论知识
Mysqldump是用于转存储Mysql数据库的实用程序,它可以转储一个或多个MySQL数据库,对其进行备份或传输到远程服务器.其主要产生一组SQL语句,使用 mysqldump 可以更加灵活地控制备份内容,如某个表或某个数据库都能单独备份.
2、准备测试数据
2.1、建测试库
[root@leo-mysql ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database leo;
Query OK, 1 row affected (0.09 sec)

mysql> use leo;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| leo |
+------------+
1 row in set (0.00 sec)
2.2、建测试表
mysql> create table test (id int(2) not null auto_increment,name varchar(10) not null,sex char(5) not null,primary key (id));
Query OK, 0 rows affected (0.04 sec)

mysql> desc test;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(2) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | NO | | NULL | |
| sex | char(5) | NO | | NULL | |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql> insert into test values(1,'LEO','man');
Query OK, 1 row affected (0.04 sec)

mysql> insert into test values(2,'ALINA','woman');
Query OK, 1 row affected (0.02 sec)
--验证表信息.
mysql> select * from test;
+----+-------+-------+
| id | name | sex |
+----+-------+-------+
| 1 | LEO | man |
| 2 | ALINA | woman |
+----+-------+-------+
2 rows in set (0.00 sec)
3、备份演练
3.1、备份单表
备份语法:mysqldump -u[用户名] -p[密码] [选项] [数据库名] [数据表名] > /备份路径/备份文件名.sql
--使用mysqldump对leo库中的test表进行备份.
[root@leo-mysql ~]# mysqldump -uroot -pmysql_4U leo test > /tmp/test.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@leo-mysql tmp]# ll
total 8
srwxrwxrwx 1 mysql mysql 0 Mar 19 15:13 mysqlx.sock
-rw------- 1 mysql mysql 6 Mar 19 15:13 mysqlx.sock.lock
drwx------ 2 liujun liujun 24 Mar 19 15:18 ssh-V60QtYkaxfIy
drwx------ 3 root root 17 Mar 19 15:13 systemd-private-db9bb610a8e34c5d91a1f680a9393b6e-bolt.service-Q6wDEB
drwx------ 3 root root 17 Mar 19 15:13 systemd-private-db9bb610a8e34c5d91a1f680a9393b6e-colord.service-lGr1Uw
drwx------ 3 root root 17 Mar 19 15:13 systemd-private-db9bb610a8e34c5d91a1f680a9393b6e-cups.service-qn5q3d
drwx------ 3 root root 17 Mar 19 15:19 systemd-private-db9bb610a8e34c5d91a1f680a9393b6e-fwupd.service-ieKHg9
drwx------ 3 root root 17 Mar 19 15:13 systemd-private-db9bb610a8e34c5d91a1f680a9393b6e-rtkit-daemon.service-fWSAlF
-rw-r--r-- 1 root root 1903 Mar 19 16:36 test.sql
drwx------. 2 liujun liujun 6 Feb 11 15:05 tracker-extract-files.1000
drwx------ 2 root root 6 Mar 19 15:13 vmware-root_736-2991268455
--查看mysqldump生成的备份内容.
[root@leo-mysql tmp]# cat test.sql
-- MySQL dump 10.13 Distrib 8.0.11, for linux-glibc2.12 (x86_64)
--
-- Host: localhost Database: leo
-- ------------------------------------------------------
-- Server version 8.0.11

/*!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 */;
SET NAMES utf8 ;
/*!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 `test`
--

DROP TABLE IF EXISTS `test`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `test` (
`id` int(2) NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL,
`sex` char(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `test`
--

LOCK TABLES `test` WRITE;
/*!40000 ALTER TABLE `test` DISABLE KEYS */;
INSERT INTO `test` VALUES (1,'LEO','man'),(2,'ALINA','woman');
/*!40000 ALTER TABLE `test` 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-03-19 16:36:19
3.2、单库备份
--对某个库进行完全备份.
[root@leo-mysql ~]# mkdir -p /opt
[root@leo-mysql ~]# mysqldump -uroot -pmysql_4U leo > /opt/test01.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
3.3、多库备份
--对leo sys两个库进行完全备份.
[root@leo-mysql ~]# mysqldump -uroot -pmysql_4U --databases leo sys > /opt/test02.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@leo-mysql opt]# ll
total 296
drwxr-xr-x. 2 root root 6 Oct 31 2018 rh
-rw-r--r-- 1 root root 1903 Mar 19 16:51 test01.sql
-rw-r--r-- 1 root root 298616 Mar 19 16:54 test02.sql
[root@leo-mysql opt]# pwd
/opt
3.4、全库备份
--对所有数据库进行完全备份.
[root@leo-mysql ~]# mysqldump -uroot -pmysql_4U --all-databases > /opt/test02.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@leo-mysql opt]# ll
total 860
drwxr-xr-x. 2 root root 6 Oct 31 2018 rh
-rw-r--r-- 1 root root 1903 Mar 19 16:51 test01.sql
-rw-r--r-- 1 root root 875504 Mar 19 16:56 test02.sql
-rw-r--r-- 1 root root 0 Mar 19 16:56 test03.sql
3.5、备份表结构
--直接备份表结构.
[root@leo-mysql ~]# mysqldump -uroot -pmysql_4U -d leo test > /opt/test04.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
查看备份内容
[root@leo-mysql opt]# ll
total 864
drwxr-xr-x. 2 root root 6 Oct 31 2018 rh
-rw-r--r-- 1 root root 1903 Mar 19 16:51 test01.sql
-rw-r--r-- 1 root root 875504 Mar 19 16:56 test02.sql
-rw-r--r-- 1 root root 0 Mar 19 16:56 test03.sql
-rw-r--r-- 1 root root 1669 Mar 19 16:58 test04.sql
[root@leo-mysql opt]# cat test04.sql
-- MySQL dump 10.13 Distrib 8.0.11, for linux-glibc2.12 (x86_64)
--
-- Host: localhost Database: leo
-- ------------------------------------------------------
-- Server version 8.0.11

/*!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 */;
SET NAMES utf8 ;
/*!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 `test`
--

DROP TABLE IF EXISTS `test`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `test` (
`id` int(2) NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL,
`sex` char(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!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-03-19 16:58:35

说明:使用-d选项只保存数据库的表结构,可以看到先删除表,再进行创建.删除和创建都是普通的命令,
任何一条在MySQL中都是可以执行的语句,有了这些语句就可以创建出和现在表结构相同的表.

标签:SET,OLD,--,备份,mysql,leo,mysqldump,Mysql,root
From: https://blog.51cto.com/u_12991611/6131314

相关文章

  • MySQL如何正确查询字符串长度
    前言笔者最近有一个需求,需要将一段文字插入到备注字段remark前面。由于担心插入后超过字段长度的限制,所以需要统计线上数据,根据长度倒序查询remark最长的一批数据看看长......
  • 看看这份2023年MySQL终级面试题,提升你的内力,给你面试助力
    1、MySQL中有哪几种锁?(1)表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。(2)行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低......
  • 力扣586(MySQL)-订单最多的客户(简单)
    题目:编写一个SQL查询,为下了最多订单的客户查找customer_number。测试用例生成后,恰好有一个客户比任何其他客户下了更多的订单。查询结果格式如下所示。 进阶......
  • 力扣584(MySQL)-寻找用户推荐人(简单)
    题目:给定表 customer ,里面保存了所有客户信息和他们的推荐人。写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2。对于上面的示例数据,结果为: ......
  • windows备份文件
    背景:在windows 下进行文件夹备份,备份成些压缩包什么之类的,话不多说,直接上bat 脚本:@echooff@rem全局变量注意事项:C:\Users\Anita\Desktop\temp\,前面最后的“\”一定不要......
  • mysql的初体验——重装解决99%的问题
    这两天被java_web的作业搞得头皮发麻,主要原因就是因为jdbc连接数据库一直失败,甚至差点把电脑搞崩,删个注册表,结果用户变量也被删了,心态直接炸裂。有以下几个地方,引以为戒:1.......
  • mysql小知识点---interactive_timeout和wait_timeout区别
    interactive_timeout定义了对于交互式连接(比如使用cmd命令窗口或者在linux上连接msyql),服务器等待的最大时间,如果超过这个时间,服务端仍然没有受到数据,则会关闭连接;【我理解......
  • 安卓连接MYSQL---2023年3月18软工日报
    今天上午睡到9点,下午用安卓连接MYSQL,最后连接成功,我来帮你踩了坑,老子帮你弄弄。首先就是你要导入5.1.49jar包驱动,别的不行,别问我,我才过坑,试了试,再有就是改权限,mysql要支......
  • Docker安装Mysql
    使用Docker安装MySQL拉取MySQL镜像dockerpullmysql:(version)eg:dockerpullmysql:5.7创建数据目录#创建数据存放目录mkdir/home/env/db/data/mysql#创......
  • MySQL数据库的SQL优化
    分创建时和查询时这两个阶段的优化展开。创建时优化Schema和数据类型优化尽量使用对应的数据类型。比如,不要用字符串类型保存时间,用整型保存IP。选择更小的数据类型。......