MySQL学习笔记21

news2024/12/26 16:12:12

MySQL逻辑备份:

mysqldump基本备份:

本质:导出的是sql语句文件。

优点:无论是什么存储引擎,都可以用mysqldump备份成sql语句。

缺点:速度较慢,导入的时候出现格式不兼容的突发情况,自己本身无法直接做增量备份。

提供三种级别的备份:表级、库级和全库级。

不停止业务、不区分引擎。

基本语法:

表级别备份
mysqldump [OPTIONS] database [tables]
库级别备份
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
全库级别备份
mysqldump [OPTIONS] --all-databases [OPTIONS]

 

3、mysqldump表级备份和还原:

案例:把db_itheima数据库中的tb_student数据表进行备份。

[root@mysql-server ~]# mkdir /tmp/sqlbak
[root@mysql-server ~]# mysqldump -uroot db_itheima tb_student > /tmp/sqlbak/tb_student.sql -p
Enter password:


[root@mysql-server sqlbak]# pwd
/tmp/sqlbak
[root@mysql-server sqlbak]# ll
total 4
-rw-r--r-- 1 root root 2226 Sep 28 08:25 tb_student.sql

说明:

如果导出的是数据库,就用数据库的名称作为sql文件的文件名。

如果导出的是数据表,就用数据表的名称作为sql文件的文件名。

然后我们再检查下这个tb_student.sql文件的内容:

-- MySQL dump 10.13  Distrib 5.7.43, for linux-glibc2.12 (x86_64)
--
-- Host: localhost    Database: db_itheima
-- ------------------------------------------------------
-- Server version       5.7.43-log

/*!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 */;
/*!40101 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 `tb_student`
--

DROP TABLE IF EXISTS `tb_student`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tb_student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `age` tinyint(3) unsigned DEFAULT '0',
  `gender` enum('male','female') DEFAULT NULL,
  `subject` enum('ui','java','yunwei','python') DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `tb_student`
--

LOCK TABLES `tb_student` WRITE;
/*!40000 ALTER TABLE `tb_student` DISABLE KEYS */;
INSERT INTO `tb_student` VALUES (1,'刘备',33,'male','java'),(2,'关羽',32,'male','yunwei'),(3,'张飞',30,'male','python'),(4,'貂蝉',18,'female','ui'),(5,'大乔',18,'female','ui');
/*!40000 ALTER TABLE `tb_student` 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-09-28  8:25:55
[root@mysql-server ~]#

所谓的逻辑备份,就是我们把数据库的增删改的SQL语句导出到一个sql文件。

还可以多张表进行备份。

还原:(恢复数据表):

有两种方式:

# mysql < .sql文件位置 -p
Enter password:123

# mysql -uroot -p
Enter password:123
mysql> source .sql文件的位置

说明:source,这个是mysql里面的,用于导入sql文件的。

先将tb_student数据表进行删除。然后再进行备份操作。

[root@mysql-server ~]# mysql db_itheima < /tmp/sqlbak/tb_student.sql -p
Enter password:
[root@mysql-server ~]#
[root@mysql-server ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.43-log MySQL Community Server (GPL)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

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> use db_itheima;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+----------------------+
| Tables_in_db_itheima |
+----------------------+
| tb_student           |
+----------------------+
1 row in set (0.00 sec)

mysql> select * from tb_student;
+----+--------+------+--------+---------+
| id | name   | age  | gender | subject |
+----+--------+------+--------+---------+
|  1 | 刘备   |   33 | male   | java    |
|  2 | 关羽   |   32 | male   | yunwei  |
|  3 | 张飞   |   30 | male   | python  |
|  4 | 貂蝉   |   18 | female | ui      |
|  5 | 大乔   |   18 | female | ui      |
+----+--------+------+--------+---------+
5 rows in set (0.00 sec)


[root@mysql-server ~]# mysql -e "select * from db_itheima.tb_student" -uroot -p
Enter password:
+----+--------+------+--------+---------+
| id | name   | age  | gender | subject |
+----+--------+------+--------+---------+
|  1 | 刘备   |   33 | male   | java    |
|  2 | 关羽   |   32 | male   | yunwei  |
|  3 | 张飞   |   30 | male   | python  |
|  4 | 貂蝉   |   18 | female | ui      |
|  5 | 大乔   |   18 | female | ui      |
+----+--------+------+--------+---------+

经过检查,看到还原成功。

mysql> use db_itheima;
Database changed

mysql> show tables;
Empty set (0.00 sec)

mysql> source /tmp/sqlbak/tb_student.sql
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.05 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 5 rows affected (0.01 sec)
Records: 5  Duplicates: 0  Warnings: 0

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)


mysql> select * from tb_student;
+----+--------+------+--------+---------+
| id | name   | age  | gender | subject |
+----+--------+------+--------+---------+
|  1 | 刘备   |   33 | male   | java    |
|  2 | 关羽   |   32 | male   | yunwei  |
|  3 | 张飞   |   30 | male   | python  |
|  4 | 貂蝉   |   18 | female | ui      |
|  5 | 大乔   |   18 | female | ui      |
+----+--------+------+--------+---------+
5 rows in set (0.00 sec)

表级的备份和还原。

可以对单表和多表进行备份与还原。

mysqldump库级备份和还原:

案例:把db_itheima数据库进行备份。

[root@mysql-server ~]# mysqldump --databases db_itheima > /tmp/sqlbak/db_itheima.sql -p
Enter password:

[root@mysql-server ~]# ll /tmp/sqlbak
total 8
-rw-r--r-- 1 root root 2381 Sep 28 08:52 db_itheima.sql
-rw-r--r-- 1 root root 2226 Sep 28 08:25 tb_student.sql

还原:

mysql> drop database db_itheima;
Query OK, 1 row affected (0.00 sec)


mysql> source /tmp/sqlbak/db_itheima.sql
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 1 row affected (0.00 sec)

Database changed
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.05 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db_itheima         |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> use db_itheima;
Database changed


mysql> select * from tb_student;
+----+--------+------+--------+---------+
| id | name   | age  | gender | subject |
+----+--------+------+--------+---------+
|  1 | 刘备   |   33 | male   | java    |
|  2 | 关羽   |   32 | male   | yunwei  |
|  3 | 张飞   |   30 | male   | python  |
|  4 | 貂蝉   |   18 | female | ui      |
|  5 | 大乔   |   18 | female | ui      |
+----+--------+------+--------+---------+
5 rows in set (0.00 sec)

MySQL 全库级备份:

在MySQL中,如果想使用mysqldump进行全库级备份,必须开启二进制日志!!!

开启二进制日志:

# vim my.cnf
[mysqld]
...
server-id=10
log-bin=/mysql_3306/data/binlog

# service mysql_3306 restart

注意:其中是mysqld,代表服务端。

 

mysqldump高级选项说明:

刷新日志:

就是看到日志比较大 了,就人为地进行日志刷新。

锁表的概念,不是把表锁住,而是指阻止对表的增加、删除、修改操作。在这个备份期间里,是阻止的,但是备份结束后,又可以进行操作了。在备份阶段,这个时候比较慢。

如果是innodb引擎,那么备份的时候,就需要加上--single-transaction。

--master-data参数其他说明:

1)恢复时会执行,默认是1

2)需要RELOAD privilege并必须打开二进制文件

3)这个选项会自动打开--lock-all-tables,关闭--lock-tables

备份:

前提:是一定要打开二进制日志:

[root@mysql-server ~]# mysqldump --all-databases --master-data --single-transaction > /tmp/sqlbak/all.sql -p
Enter password:


[root@mysql-server ~]# ll /tmp/sqlbak
total 880
-rw-r--r-- 1 root root 890065 Sep 28 09:15 all.sql
-rw-r--r-- 1 root root   2381 Sep 28 08:52 db_itheima.sql
-rw-r--r-- 1 root root   2226 Sep 28 08:25 tb_student.sql

其中:--master-data无所谓加还是不加。

--single-transaction:innoDB引擎,就是必须要加的。

还原:

# mysql < all.sql -p
Enter password:123

总结:

  1. mysqldump工具备份的是==SQL语句==,故备份不需要停服务

  2. 使用备份文件==恢复==时,要保证==数据库处于运行状态==

  3. 只能实现全库,指定库,表级别的==某一时刻的备份==本身==不能增量备份==

  4. 适用于==中小型==数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1049066.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Appium开发

特点 开源免费支持多个平台 IOS(苹果)、安卓App的自动化都支持 支持多种类型的自动化 支持苹果、安卓应用原生界面的自动化支持应用内嵌网络视图的自动化支持手机浏览器(Chrome)中的web网站自动化支持flutter应用的自动化 支持多种编程语言 像selenium一样&#xff0c;可以用多…

全面解读 SQL 优化 - 统计信息

一、简介 数据库中的优化器&#xff08;optimizer&#xff09;是一个重要的组件&#xff0c;用于分析 SQL 查询语句&#xff0c;并生成执行计划。在生成执行计划时&#xff0c;优化器需要依赖数据库中的统计信息来估算查询的成本&#xff0c;从而选择最优的执行计划。以下是关…

一文了解什么是分辨率

分辨率是对显示屏或相机传感器中可以包含的像素&#xff08;图片元素或单个颜色点&#xff09;数量的测量。实际上&#xff0c;分辨率描述了图像或图片的锐度或清晰度。它以水平和垂直方向上可显示的像素数来表示。 表示的分辨率&#xff1a;显示器、打印机和音频 在大多数显示…

外包公司干了2个月,技术倒退两年...

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入杭州某软件公司&#xff0c;干了接近3年的功能测试&#xff0c;今年8月份&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了三年的功能测试…

JOSEF约瑟DZJ-402 DZY-401导轨式中间继电器 触点形式 两转换 AC、DC220V

DZY(J)-400导轨式中间继电器 系列型号 DZY、DZJ-401 DZY、DZJ-402 DZY、DZJ-403 DZY、DZJ-404 DZY、DZJ-405 DZY、DZJ-406 DZY、DZJ-407 DZY、DZJ-408 DZY、DZJ-409 DZY、DZJ-410 DZY、DZJ-411 DZY、DZJ-412 DZY、DZJ-413 DZY、DZJ-414 DzY、DZJ-415 DZY、DZJ…

嵌入式学习笔记(34)S5PV210中断处理的编程实战

6.8.1中断控制器初始化 主要工作有&#xff1a;第一阶段绑定异常处理程序到异常向量表&#xff1b;禁止所有中断源&#xff1b;选择所有中断类型为IRQ&#xff1b;清理VICnADDR寄存器为0。 为什么要禁止所有中断源&#xff1a; 因为中断一旦打开&#xff0c;因为外部或硬件自…

秦时明月卡牌版攻略,最强的推图阵容推荐

这篇文章提供了关于秦时明月卡牌版游戏最强推图攻略2023的详细信息&#xff0c;以帮助玩家在游戏中创建最强的推图阵容。让我们一起来看看这些新的信息吧。 关注【娱乐天梯】&#xff0c;获取内部福利号 秦时明月卡牌版强大的推图组合提议 推图游戏中&#xff0c;绝对不可忽视的…

ros使用rviz订阅Image类型话题,显示yolov7目标检测结果

开发板深度相机系统Xavierrealsense D455ubuntu18.04 1、首先启动yolov7的ros节点&#xff0c;发布话题/image。 2、终端输入rviz&#xff0c;回车打开rviz&#xff0c;Add——>Image&#xff1a; 3、展开Image选项&#xff0c;选择要订阅的topic&#xff0c;左下角就显示出…

中秋佳节,华为手机如何拍月亮?

今年中秋你在哪里过&#xff1f;又到中秋佳节月圆夜&#xff0c;一年一度最期待的拍月亮环节来了&#xff01;分享几个华为手机拍月亮小技巧&#xff0c;共赏中秋月色~

【Vue2.0源码学习】生命周期篇-挂载阶段(mount)

文章目录 1. 前言2. 挂载阶段分析3. 总结 1. 前言 模板编译阶段完成之后&#xff0c;接下来就进入了挂载阶段&#xff0c;从官方文档给出的生命周期流程图中可以看到&#xff0c;挂载阶段所做的主要工作是创建Vue实例并用其替换el选项对应的DOM元素&#xff0c;同时还要开启对…

DIY手工坊商城小程序的作用有哪些

自己动手做的东西往往更具自豪感&#xff0c;也能锻炼自身的动手能力&#xff0c;而DIY手工坊无疑是小孩子、年轻人喜欢的地方&#xff0c;无论自己做还是成品都具备自由性、不受规格类型局限&#xff0c;比如手机壳、绘画、手工积木、雕塑等。 而对商家来说&#xff0c;经营收…

赋能工业数字化转型|辽宁七彩赛通受邀出席辽宁省工业互联网+安全可控先进制造业数字服务产业峰会

2023年9月25日下午&#xff0c;由软通动力信息技术&#xff08;集团&#xff09;股份有限公司主办的“工业互联网安全可控先进制造业数字服务产业峰会”在辽宁沈阳顺利举办。省市区各级政府、科研院所领导、技术专家、企业高管以及生态合作伙伴代表等齐聚一堂&#xff0c;共同探…

Konva事件机制

前言 不同于HTML或SVG标签可以直接绑定事件&#xff0c;Canvas是使用JavaScript来绘制内容&#xff0c;这意味着其内容没有具体的DOM&#xff0c;所以Canvas渲染引擎都会自己实现一套事件机制。Konva的事件机制支持图形的选中、拖拽等交互处理&#xff0c;同时还支持单个图形对…

微信小程序案例2-1:学生信息

文章目录 &#xff08;二&#xff09;准备图像素材&#xff08;三&#xff09;编写小程序页面结构 单击[确认] 清空页面结构文件index.wxml内容 修改页面配置文件index.json&#xff0c;不适用navigation-bar组件 删除全局配置文件app.json&#xff0c;删除渲染器配置&a…

一键开启默认打印机共享功能,如何用powershell编写一个一键开启windows本地默认打印机共享的脚本

环境: Win10 专业版 Win11专业版 powershell 问题描述: 一键开启默认打印机共享功能,如何用powershell编写一个一键开启windows本地默认打印机共享的脚本 解决方案: 修改Windows注册表来实现打印机共享:(未成功)打开注册表编辑器:按下Win + R组合键,输入"re…

手机,汽车大卖背后,华为生态进入发展新阶段

监制 | 何玺 排版 | 叶媛 从8月底至今&#xff0c;华为手机、汽车的热度就没有消退过。 如今的华为产品&#xff0c;从手机到AR眼镜&#xff0c;从智慧屏到汽车&#xff0c;几乎全线都处在一机难求、一车难求状态。 9月25日举行的华为秋季全场景新品发布会&#xff0c; 更是…

实验三十三、三端稳压器 LM7805 稳压性能的研究

一、题目 LM7805 输出电压、电压调整率、电流调整率以及输出纹波电压的研究。 二、仿真电路 电路如图1所示。集成稳压芯片采用 LM7805CT。 三、仿真内容 &#xff08;1&#xff09;测量图1&#xff08;a&#xff09;LM7805CT 的电压调整率&#xff0c;测量条件为 I O 50…

【数据结构与算法】通过双向链表和HashMap实现LRU缓存 详解

这个双向链表采用的是有伪头节点和伪尾节点的 与上一篇文章中单链表的实现不同&#xff0c;区别于在实例化这个链表时就初始化了的伪头节点和伪尾节点&#xff0c;并相互指向&#xff0c;在第一次添加节点时&#xff0c;不需要再考虑空指针指向问题了。 /*** 通过链表与HashMa…

算法与数据结构-Trie树

文章目录 什么是“Trie 树”&#xff1f;如何实现一棵 Trie 树&#xff1f;Trie 树真的很耗内存吗&#xff1f;Trie 树与散列表、红黑树的比较 什么是“Trie 树”&#xff1f; Trie 树&#xff0c;也叫“字典树”。顾名思义&#xff0c;它是一个树形结构。它是一种专门处理字符…

SolidWorks 入门笔记03:生成工程图和一键标注

默认情况下&#xff0c;SOLIDWORKS系统在工程图和零件或装配体三维模型之间提供全相关的功能&#xff0c;全相关意味着无论什么时候修改零件或装配体的三维模型&#xff0c;所有相关的工程视图将自动更新&#xff0c;以反映零件或装配体的形状和尺寸变化&#xff1b;反之&#…