mysql复习笔记06(小滴课堂)

mysql数据安全之备份的背景意义

介绍数据备份

mysql数据安全之mysqldump备份实例(跨机器)

一般存在于mysql的bin目录下。中小型企业,数据量不是特别大的时候可以使用这个方式备份。

可以看到备份过来的库了。这是备份单个数据库。

如果想备份库中的某个表:

在数据库后加上表名即可。

备份多个数据库:

在备份库的时候,如果我们不加--databases,我们只是备份的数据,而不是库的结构。

备份是否加选项是有区别的。

mysqldump还有很多参数,可以使用--help进行查看。

这种方式属于完全备份,如果是在本地备份,-h选项可以去掉。

我们解压出来看看里面是什么东西:

我们能看到很大sql语句,但是它并没有把创建库的那个语句带过来。

如果我们把库删了,使用这个备份的语句时,会报找不到库名。

这种方式属于逻辑备份。

mysql数据安全之mysql数据的恢复

备份全库:

删除库(只是为了学习,在公司里千万不要这样做,万一恢复不回来,事情就大了)

会报找不到库。

解决方式是,创建一个库。

在使用语句:

这样就可以了。

如果数据量大,这种方式非常耗费时间。

数据就回来了。

如果是之前说的加上了参数的--databases就不会出现这个问题了。

多库如何恢复

备份多库sql文件再同样方式执行即可。

mysql数据安全之物理备份

查找数据源文件路径:

如果直接把表复制粘贴的方式用来备份,对于MyIsAm表没有影响,但是对InnoDB表会有影响的。

创建两个数据库。

创建库会生成db.opt文件,主要存储着当前库的默认字符集和字符校验规则。

创建个InnoDB表:

创建MyISAM表:

拷贝MyIsAm表:

可以查到数据只是数据为空。

同样的方法拷贝InnoDB表:

需要备份一下三个文件,非常重要。

拷贝过来了。

原来的这个文件进行删除。

重启数据库:

重启以后这三个文件又回来了。

我们解压新的拷贝的库。

在库里能看到这个表,但是查询却报错表不存在。

我们在其它库查看其它表依旧报错表不存在。

我们可以看出来我们把这三个文件移走了是对mysql服务器整个innodb表的影响,不是单一的某一个库。

删除重启后生成的文件。

之前的文件拿回来。

所属组和所属用户都是root。

我们要去进行修改:

重启服务器。

然后就可以查询的到了。

所以建议在物理备份的时候一定要把mysql服务器先停止了。

如果备份一个正在运行着的服务,除了停mysql服务器还有另一种方式:

备份之后再解锁。

不过数据量大的话,这种方式很费时间。

生产中很少直接使用拷贝的方式物料备份,如果用这种方式一定要备份那三个文件。等备份好库和表后再使用备份的这三个文件。

需要在/etc/my.cnf下去配置:

创建个存放日志数据的目录,一定要赋予mysql权限。

文件名可以随便起,加上这两个配置。

修改了配置文件,我们就要重启Mysql服务器:

现在我们已经开启了这个二进制日志。

查看所有的binlog日志列表:

可以这样查看我们的二进制日志。

刷新二进制日志:

我们的二进制日志列表就会刷新。

重启服务也会更新出一个文件。

我们也可以删除二进制文件:

就会重新从1开始生成。

先进行一次备份:

-f为刷新二进制日志。

备份完毕。

我们的二进制日志就从2开始了。

我们现在添加一条数据:

我们这个操作会被二进制日志监视到。

我们的二进制文件使用cat或者more查看会乱码。

我们需要用Mysql命令去查看。

这个命令在我们的安装目录下:

和mysqldump是在一起的。

直接查看也是报错。

会看到很多信息。

注释掉配置文件中的内容。

当然这是二进制文件,我们也可以给它导成普通文件:

生成了普通文件,我们就可以用more来查看了:

那我们怎么来恢复数据呢?

我们恢复我们之前删除的表:

我们插入之前已经备份了表。

所以没有看到插入的数据,我们怎么进行恢复呢?

我们可以根据时间和位置来恢复数据:

我们查看忽略大小写完全匹配我们删除表的语句。

通过cat -n 我们可以查看我们是在第几行删除的这个表。

也可以通过sed命令查看具体行的命令。

我们可以恢复开始行到结束行的数据。

数据就可以恢复成功了。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kioptrix-3

靶场下载地址 https://download.vulnhub.com/kioptrix/KVM3.rar 信息收集 # Nmap 7.94 scan initiated Thu Dec 21 21:52:25 2023 as: nmap -sn -oN live.nmap 192.168.1.0/24 Nmap scan report for 192.168.1.1 (192.168.1.1) Host is up (0.00048s latency). MAC Address:…

慎投!新增2本期刊剔除!中科院2区TOP仍被标记长达6个月!(内附1区TOP仅21天录用)

期刊动态:2本「On Hold」期刊被剔除 美国时间2023年12月19日,科睿唯安更新了WOS期刊目录(参考:警惕!5本剔除!中科院1区TOP,IF8.8,预警高风险期刊更名!)&…

运行游戏显示缺少d3dx9_42.dll怎么办,三步即可完美解决

在我们使用电脑玩游戏,工作的时候,偶尔会遇到一些错误提示,其中之一就是缺少d3dx9_42.dll。这个错误通常出现在运行某些游戏或应用程序时,它表示计算机缺少了DirectX 9组件中的d3dx9_42.dll文件。为了解决这个问题,下面…

Linux-Keepalived(VRRP协议)高可用集群搭建

Linux-Keepalived(VRRP协议)高可用集群搭建 一、VRRP简介1.1 什么是VRRP?1.2 keepalived是什么?1.3 keepalived工作原理 二、实操配置过程2.1 试验模型2.2. Keepalived监控和维护VRRP集群的步骤2.2.1 安装keepalived2.2.2 配置kee…

RocketMQ系统性学习-RocketMQ高级特性之消息存储在Broker的文件布局

🌈🌈🌈🌈🌈🌈🌈🌈 【11来了】文章导读地址:点击查看文章导读! 🍁🍁🍁🍁🍁🍁&#x1f3…

【go-zero】 go-zero API 如何接入 Nacos 被 java 服务调用 | go集成java服务

一、场景 外层使用的是springcloud alibaba 这一套java的分布式架构 然后需要接入go-zero的api服务 这里我们将对api服务接入Nacos进行一个说明 二、实战 1、package 因为使用的是go-zero框架 这里我们会优先使用go-zero生态的包 github 包如下: github.com/nacos-group/naco…

yarn : 无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。‘yarn‘ 不是内部或外部命令,也不是可运行的程序.解决方案

文章目录 报错截图介绍方法一方法二评论截图 报错截图 介绍 我的npm已经安装好了, 是可以运行npm -v 来查看版本的 这个时候报 yarn 不是内部或外部命令 相信你的npm也已经安装好了 我下面两个方法都进行了, 具体起作用的我也不知道是哪个, 都试试吧, 我成功了 注意尝试后关…

python区块链简单模拟【01】

完整代码 https://gitee.com/ihan1001 https://github.com/ihan1001 重点:时间戳,MD5哈希,SHA256哈希,base64一种用64个字符表示任意二进制数据的方法,ECC椭圆曲线算法 import time time.time()datetime.now().strfti…

WPF中使用ListView封装组合控件TreeView+DataGrid-粉丝专栏

wpf的功能非常强大,很多控件都是原生的,但是要使用TreeViewDataGrid的组合,就需要我们自己去封装实现。 我们需要的效果如图所示: 这2个图都是第三方控件自带的,并且都是收费使用。 现在我们就用原生的控件进行封装一…

使用Springboot做测试的步骤详解

​ 📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试…

CV算法面试题学习

本文记录了CV算法题的学习。 CV算法面试题学习 点在多边形内(point in polygon)高斯滤波器 点在多边形内(point in polygon) 参考自文章1,其提供的代码没有考虑一些特殊情况,所以做了改进。 做法&#xff…

Zookeeper-应用实战

Zookeeper Java客户端实战 ZooKeeper应用的开发主要通过Java客户端API去连接和操作ZooKeeper集群。 ZooKeeper官方的Java客户端API。 第三方的Java客户端API,比如Curator。 ZooKeeper官方的客户端API提供了基本的操作:创建会话、创建节点、读取节点、更新数据、…