mysql基础3——数据备份与恢复、破解数据库密码

news2024/11/25 22:41:36

文章目录

  • 一、备份方案
  • 二、备份工具mysqldump
    • 2.1 备份整张表数据
    • 2.2 备份整个库数据
  • 三、全量备份
  • 四、差异备份
  • 五、数据库密码破解

一、备份方案

备份方案概念特点
全量备份对某一个时间点上的所有数据或应用进行完全拷贝。数据恢复快,备份时间长。
增量备份在一次全量备份或上一次增量备份后,只备份与前一次相比增加和被修改的文件。
第一次增量备份的对象是进行全备后所产生的增加和修改的文件。
第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件。
无重复备份数据
备份时间短
还原数据须按一定顺序进行
差异备份对上一次全备份后到进行差异备份的这段时间内,对增加或修改文件的备份。方便快捷。
只需恢复第一次全量备份和最后一次差异备份。

二、备份工具mysqldump

备份语法:

  1. 备份某个库的某张表数据:mysqldump [OPTIONS] database [tables …]
  2. 备份所有数据:mysqldump [OPTIONS] --all-databases [OPTIONS]
  3. 备份某个库的所有数据:mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3…]
常用参数释义
-u指定数据库用户名
-h指定服务器主机,请使用ip地址
-p指定数据库用户的密码
-P指定数据库监听的端口,这里的#需用实际的端口号代替,如-P3307

2.1 备份整张表数据

1.创建一个库,里面创建一张表,插入一条数据。

create database qingjun;
use qingjun;

create table student(id int not null,name varchar(10),age tinyint);
insert student value('2','zhangsan','22');

2.备份某张表,讲qingjun库里的student表数据备份到/opt/data/qingjun_20230629.sql文件。

mysqldump -uroot -pcitms qingjun student > /opt/data/qingjun_20230629.sql

3.删除该表。

mysql -uroot -pcitms -e 'drop qingjun.student;'

4.恢复表数据。

//进入数据库恢复,进入对应的库。读取sql文件,写绝对路径。
use qingjun;
source /opt/data/qingjun_20230629.sql;

//数据库外面恢复,需要指定恢复到哪个库里。
mysql qingjun < /opt/data/qingjun_20230629.sql

5.查看恢复的表数据。
在这里插入图片描述

2.2 备份整个库数据

1.现有2个库,每个库下有一张表。
在这里插入图片描述

2.备份这两个库。

mysqldump --databases qingjun baimu > /opt/data/database_all.sql

3.删除这两个库。

mysql -uroot -pcitms -e 'drop database qingjun;'
mysql -uroot -pcitms -e 'drop database baimu;'

在这里插入图片描述
4.还原两个库数据。

mysql < /opt/data/database_all.sql

在这里插入图片描述

三、全量备份

  1. 全量备份后,若在数据库里修改了数据,则恢复时是恢复到备份之前的内容。

1.全量备份。

mysqldump --all-databases > /opt/data/all.sql

2.删除数据库,模拟数据丢失。
在这里插入图片描述
3.恢复数据库,若如果数据库都存在,也可以执行此步骤。

mysql < /opt/data/all.sql

在这里插入图片描述

四、差异备份

1.开启MySQL服务器的二进制日志功能。

//添加如下2行内容。
vim /etc/my.cnf 
server-id = 10          ##设置服务器标识符,自定义设置数字。
log-bin=mysql_bin       ##开启二进制日志功能。

//重启服务。
service mysqld restart

在这里插入图片描述
2.全量备份,启用事务日志。

mysqldump -uroot -pcitms --single-transaction --flush-logs --master-data=2 --all-databases --delete-master-logs > /opt/data/all_1.sql

在这里插入图片描述
3.此时修改数据。

//插入2条新内容。
insert student(id,name,age) values(3,'wangwu',24),(4,'zhaoliu',33);

//修改1条内容。
update student set name='baimu' where age=33;

在这里插入图片描述
4.此时删除数据库,模拟数据丢失。此时的事务日志/opt/data/mysql_bin.000002已经记录了刚才的所有操作,最后一条操作是删除数据的命令。

mysql -uroot -pcitms -e'drop database qingjun;'

在这里插入图片描述
5.刷新事务日志,会生成一个新事务日志。

mysqladmin -uroot -pcitms flush-logs

在这里插入图片描述

6.数据恢复。

  • 第一步,全量恢复。

1.全量恢复后,查看表内容,表里没有之前增加和修改内容,是因为修改操作是在全量备份之后进行的,是恢复到增、改之前的内容。
在这里插入图片描述
2.若要恢复到增改之后的内容,就要用差量备份恢复,需要用到mysql_bin.000002这个事务日志文件,这里记录到了增、改操作。

  • 第二步,差异恢复。

1.根据事务日志查看误删数据库这步操作的开始编号,如下图得知,删除qingjun数据库之前是799,删除之后是900。

show binlog events in 'mysql_bin.000002';

在这里插入图片描述

2.此时恢复到删除之前的799,查看恢复结果。

mysqlbinlog --stop-position=799 /opt/data/mysql_bin.000002 |mysql -uroot -pcitms

在这里插入图片描述

五、数据库密码破解

  • 数据库账号密码时存放在mysql.user表里,正常情况下用户登陆时会读取该表记录的密码,与用户输入的密码对比,验证是否正确。
  • 若数据库密码遗忘,可以通过一个配置参数来进入数据库修改密码。

1.修改配置文件,重启服务。

//添加该参数, 表示登录时跳过密码验证,即是可以跳过密码验证直接进入数据库。
vim /etc/my.cnf 
skip-grant-tables     

//重启服务。
service mysqld restart

2.进入数据库修改密码,将authentication_string的原本的密文改成新密码。

update user set authentication_string=password('citms@123') where user='root';

在这里插入图片描述
3.将刚才再配置文件新增的那个配置参数删除,并重启服务,再使用新密码登录数据库。
在这里插入图片描述

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

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

相关文章

抓住重点,谋定而后动

一、我们平常项目有哪几种 有两种常规项目、大项目 1.常规项目 技术团队的重心是把执行做到位&#xff0c;你要更关注过程管控&#xff0c;确保系统交付 2.大项目&#xff1a; 什么是大项目&#xff0c;他有什么特点 大项目时间投入大、人员规模大、系统更大&#xff0c;复…

ResourceBundle读取properties文件

ResourceBundle 常用API 方法签名方法描述public Locale getLocale()获取本地国际化环境ppublic Enumeration getKeys()获取属性文件中所有keypublic final String getString(String key)获取属性文件中key对应的value, 返回值为String, 如果不存在, 则抛出异常public final O…

STM32文档

一、寄存器缩写 二、存储器和总线构架 DMA&#xff0c;全称为&#xff1a;Direct Memory Access&#xff0c;即直接存储器访问 简而言之&#xff0c;DMA就是将一个内存里的数据搬运到另一个内存里&#xff0c;此过程无需CPU直接控制输出 系统架构存储器组织存储器映射&#xf…

解密:Prompt、Token、和completions是什么?

Prompt、Token、和completions 本文是科普向&#xff0c;大家放心阅读 在ChatGPT越来越火的时候&#xff0c;很多开发者都想大展拳脚&#xff0c;但在这之前&#xff0c;我们需要了解一些基础知识&#xff0c;比如你知道什么是token、什么是prompt、什么是Complemention Pro…

vue下基于elementui自定义表单-后端数据设计篇

vue下基于elementui自定义表单-后端篇 自定义表单目前数据表单设计是基于数据量不大的信息单据场景&#xff0c;因为不考虑数据量带来的影响。 数据表有: 1.表单模版表&#xff0c;2.表单实例表&#xff0c;3.表单实例项明细表&#xff0c;4表单审批设计绑定表 以FormJson存…

chatgpt赋能python:关于Python的常见问题及解决方法

关于Python的常见问题及解决方法 在编程领域中&#xff0c;Python已经成为了最流行的编程语言之一。然而&#xff0c;在使用Python编写代码时&#xff0c;难免会遇到一些问题。在本文中&#xff0c;我们将介绍一些常见的Python问题以及如何解决它们。 编码问题 在Python中&a…

idea项目名旁边还有一个项目名——idea笔记

问题描述 我们常常因为想改项目名但是没有改完全从而出现了项目名旁边还有一个项目名 例如&#xff1a; 解决方案&#xff1a; 打开File->project structure 修改前&#xff1a; 修改后&#xff1a;

【数据挖掘】时间序列教程【一】

第一章 说明 对于时间序列的研究&#xff0c;可以追溯到19世纪末和20世纪初。当时&#xff0c;许多学者开始对时间相关的经济和社会现象进行研究&#xff0c;尝试发现其规律和趋势。其中最早的时间序列研究可以追溯到法国经济学家易贝尔&#xff08;Maurice Allais&#xff09;…

微服务04 分布式搜索引擎 elasticsearch DSL数据聚合 自动补全 数据同步 集群 Sentinel

微服务03 分布式搜索引擎 elasticsearch ELK kibana RestAPI 索引库 DSL查询 RestClient 黑马旅游 分布式搜索引擎03 1.数据聚合 聚合&#xff08;aggregations&#xff09;可以让我们极其方便的实现对数据的统计、分析、运算。例如&#xff1a; 什么品牌的手机最受欢迎&#x…

ℰ悟透Qt—Http网络编程

目录 概述实践理论QNetworkAccessManager进行Http编程的基本步骤代码实战(重点片段) 概述 网络访问 API 建立在一个 QNetworkAccessManager 对象之上&#xff0c;该对象保存了发送请求所需的公共配置和设置。它包含代理和缓存配置&#xff0c;以及与此类问题相关的信号和可用于…

【计算机网络】数据链路层之随机接入-CSMA/CD协议(总线局域网)

1.概念 2.信号碰撞&#xff08;冲突&#xff09; 3.解决方案 CSMA/CD 4.争用期&#xff08;端到端往返时延&#xff09; 5.最小帧长 6.最大帧长 7.指数退避算法 8.信道利用率 9.帧发送流程 10.帧接受流程 12.题目1 13.题目2 14.题目3 15 小结

无线蓝耳机哪些牌子好?十大真无线耳机排名品牌

随着TWS技术在应用层面的日益完善&#xff0c;真无线蓝牙耳机就越来越受欢迎了&#xff0c;完全摒弃了线材的束缚&#xff0c;做到了真正的无线耳机&#xff0c;这简直是无法忍受耳机线的强迫症的福音&#xff0c;而且现在不仅是佩戴时会格外的舒适&#xff0c;随着无线技术的不…

Redhawk: 为什么STA CHECK中switch cell覆盖率为0?

如题&#xff0c;做dynamic analysis时&#xff0c;不需要switch cell的timing window信息&#xff0c;但是做low power analysis需要做上电分析时switch cell的timing window就是必须的了&#xff0c;本文对switch cell control pin没有timing window (STA CHECK覆盖率为零)的…

ChatGPT:给教育创新带来风险与挑战

在教育界&#xff0c;当前对ChatGPT的关注固然有一部分原因是它所能带来的教育创新&#xff0c;但更多的原因是ChatGPT同时也在冲击着教师的角色定位&#xff0c;推动着人才培养目标的转型&#xff0c;逼迫着学生和教师走出舒适区。况且&#xff0c;ChatGPT还不断诱发教育中的技…

【算法之贪心算法IV】leetcode56. 合并区间

452. 用最少数量的箭引爆气球 力扣题目链接 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着 x 轴…

cisp 记录(第一,二章节)

第一章信息安全保障 1.信息安全保障基础 1.1信息安全的概念 1.2信息安全属性 1.3信息安全视角 1.4信息安全发展阶段 1.5信息安全保障新领域 2安全保障体系框架 2.1基于时间的PDR和PPDR模型 2.2信息安全保障技术框架 2.3信息系统安全保障评估框架 2.4企业安全架构 1.1信息安全…

mysql基础4——单机多实例部署

文章目录 一、手动部署二、脚本部署 前提了解&#xff1a; 适用于服务器不够&#xff0c;但需要把业务区分开的情况下&#xff0c;可以部署此方式。比如多个业务平台使用的数据库不同&#xff0c;不能只创建一个数据库&#xff0c;这时候就需要部署多实例。实际情况中能避免此方…

BOSHIDA 检测DC电源模块的稳定性能的几个步骤

BOSHIDA 检测DC电源模块的稳定性能的几个步骤 检测DC电源模块的稳定性能需要进行以下几个步骤&#xff1a; 1. 确认测试设备&#xff1a;需要准备一台多功能电源和一台数字万用表&#xff0c;可以根据需要选用不同型号和规格的测试设备。 2.设置电源参数&#xff1a;根据DC电…

DEM获取地形和计算点是否在矩形面积内的算法

1准备一个DEM地形&#xff0c;打开GlobalMap,如下选择 选择否&#xff0c;生成边界 将边界导出为shp文件&#xff0c;打开QGIS&#xff0c;安装get wkt插件&#xff0c;选择对应坐标系&#xff0c;获取wkt,如图 , 附判断点是否在此坐标范围内代码 /// <summary>/// 判断点…

echarts 柱形图 Y轴数据多,鼠标滚动显示数据,不缩放

坐标轴数据太多&#xff0c;只能滚动显示&#xff0c;滚动的时候&#xff0c;不想缩放&#xff0c;单纯平移就好。 滚动后第二屏的截图 没滚动的&#xff0c;第一屏的截图 option {title: {// text: World Population,},tooltip: {trigger: axis,axisPointer: {type: shadow,}…