MySQL数据备份恢复全攻略,让我们通过简单几步找回丢失的数据

2023-05-16

编写初衷

没有人生下来天生就是会计算机的,就拿笔者来说的话,也是从Windows->Centos->Ubuntu一步一步慢慢学习,积累下来的。为了让大家能够更快更高效率的学习,从今天开始,我将每天深入教您1个命令,让我们一起live and study,积少成多!

MySQL作为主流的开源数据库,常用于一些创业型公司或者小并发的企业。但是在使用的过程中,难免会遇到误删数据等一系列的情况,本篇文章,我将教您怎样简单几步备份恢复数据。

操作方法

全库备份

mysqldump -uroot -p  --master-data=2 --single-transaction --events --triggers --routines test > back_test.sql

这边的数据库名为test,当然你也可以选择您自己的数据库名,生成的备份文件为back_test.sql。

导入数据库

使用Mysql 导入test库,可以导入为其他库名

首先建立数据库test1

mysql -uroot -p  -e "create database test1";

然后退出Mysql控制台,继续在SSH上执行导入操作

mysql -uroot -p test1 < /data/back_test.sql 

然后我们就可以看到test数据库已经恢复到test1的数据库了。

单表数据备份恢复

利用--tab备份的表和数据恢复单表数据

#备份 
mysqldump -uroot -p  --master-data=2 --single-transaction --events --triggers --routines test m_member --tab="/data/backup";

该条命令表示在/data/backup 目录下备份m_member表. 此目录下会生成m_member.sql(表结构文件)和 m_member.txt(数据)

#恢复
source /data/backup/m_member.sql;
#导入数据
load data infile '/data/backup/m_member.txt' into table m_member;

指定时间点恢复

先决必要条件

  • 具有指定时间点前的一个全库备份
  • 具有自上次全备后到指定时间点的所有二进制日志

数据库开启binlog功能

#我们拿Centos7为例,一般MySQL的配置文件在/etc/my.cnf下
vim /etc/my.cnf
#在[mysqld]下添加下面两行
log-bin=mysql-bin
binlog-format=Row
#重新启动数据库并检查binlog开启状态
mysql> show variables like 'log_%';

搭建测试环境

#m_order数据库进行全量备份
mysqldump  -uroot -p --master-data=2 --single-transaction --triggers --events --routines --databases m_order > m_order.sql;
#新建m_user表,并且插入数据
create table  m_user(`id` int(11) unsigned not null auto_increment, `user_id` int(11) unsigned not null default 0, `user_name` varchar(100) not null default '',primary key(`id`)) engine=InnoDB;
insert into m_user(user_id,user_name) values(1,'zhangsan'),(2,"lisi"),(3,"zhangsan2"),(6,"lisi6"),("8","wangwu8");
#然后删除id >2的数据
delete from m_user where id >2;

利用全量备份恢复数据

#利用全量备份恢复数据
mysql -uroot -p m_order < m_order.sql 
#查看全量备份m_order库中的binlog文件和pos值
more m_order.sql 
#查看binlog上次从m_order库中 position开始值为76914开始删除的点
 mysqlbinlog -v --base64-output=decode-rows --database=m_order --start-position=76914 mysql-bin.000001 |grep -B3 DELETE|more
#我们这边假设此时的stop-position = 78336

从开始点到结束点 导出sql数据

mysqlbinlog --start-position=76914 --stop-position=78336 --database=m_order mysql-bin.000001 > m_diff.sql

恢复数据

mysql -uroot -p m_order < m_diff.sql

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL数据备份恢复全攻略,让我们通过简单几步找回丢失的数据 的相关文章

随机推荐

  • Linux远程管理常用命令(超全超详细)【持续更新】

    目录 1 shutdown命令 2 ifconfig命令 3 uname命令 4 uptime命令 5 free命令 6 who命令 7 last命令 8 history命令 9 ping命令 10 chmod 命令 11 chown 命令
  • 基于springcloud 的Eureka的服务注册与发现

    1 注册中心用来管理每个服务与服务之间的依赖关系 xff08 服务治理 xff09 xff0c 存放服务地址相关信息 xff08 接口地址 xff09 2 服务提供者 xff1a 提供服务接口 3 服务消费者 xff1a 调用服务接口 4
  • 计算机系统层次存储结构

    问 xff1a 当前计算机系统一般会采用层次结构存储数据 xff0c 请介绍下典型计算机存储系统一般分为哪几个层次 xff0c 为什么采用分层存储数据能有效提高程序的执行效率 xff1f 所谓存储系统的层次结构 xff0c 就是把各种不同存
  • Springboot的cache缓存机制

    我们知道一个程序的瓶颈在于数据库 xff0c 我们也知道内存的速度是大大快于硬盘的速度的 当我们需要重复地获取相同的数据的时候 xff0c 我们一次又一次的请求数据库或者远程服务 xff0c 导致大量的时间耗费在数据库查询或者远程方法调用上
  • Python-异常处理+文件

    目录 1 异常处理 1 简单的异常捕获 2 捕获错误类型 3 捕获未知错误 4 完整的异常语法 5 异常的传递 6 抛出异常 2 文件 1 读取文件 2 读取文件后文件指针会改变 3 写入文件 4 分行读取文件 5 复制文件 6 复制大文件
  • Eureka的设计理念

    目录 1 概述 1 1 服务实例如何注册到服务中心 1 2服务实例如何从服务中心剔除 1 3 服务实例信息的一致性问题 2 AP优于CP 3 Peer to Peer架构 3 1 主从复制 3 2 对等复制 4 Zone及Region设计
  • fastjson解析出现引用问题

    1 问题描述 后端返回前端接口数据包含引用数据 xff0c 如下图所示 2 原因 转json时使用这种方式 xff0c fastjson自动使用循环引用 xff1a String content 61 JSONObject toJSONSt
  • idea项目中添加mapper.xml文件样例

    1 点击File gt Settings gt 步骤如下图 然后新建mapper xml文件 点击mapper即可 2 添加其他模板方法同上
  • win10系统jdk1.8和tomcat8环境变量配置

    1 jdk环境变量配置 1 xff09 JAVA HOME 变量值就是jdk安装地址 JRE HOME 变量值就是jre安装地址 2 CLASSPATH 变量为 JAVA HOME lib JAVA HOME lib dt jar JAVA
  • Redis-事物&事物的四大特性(ACID)

    Redis事物 事物是指一系列操作步骤 xff0c 这一系列操作步骤 xff0c 要么完全执行 xff0c 要么完全不执行 Redis中的事物 transaction 是一组命令的集合 xff0c 至少是两个或两个以上的命令 xff0c r
  • 【chrome不能扩展程序怎么办】4步搞定安装导入扩展

    在 Edge 浏览器输入 xff1a edge version xff0c 按回车键后 xff0c 可以看到 用户配置路径 xff1a xxx xff0c 路径下的 Extensions 文件夹就是 Edge 安装扩展的目录 IE扩展位置
  • MariaDB Logs

    查询日志 xff1a query log 慢查询日志 xff1a slow query log 事务日志 xff1a transaction log 二进制日志 xff1a binary log 中继日志 xff1a relay log 错
  • android ViewBinding

    一 kotlin android extensions 在使用ViewBinding之前 xff0c 我们一直使用的是kotlin android extensions xff0c 使用kotlin android extensions可以
  • 如何添加win10命令提示符字体,美化显示效果

    如图 win10命令提示符的字体真让人难受的要死 xff0c 难道就不能改成好看一点的吗 xff1f 笔者开始了停不下来的百度和Google 在查找了大量零碎或者过时的资料后 xff0c 终于找到了一篇看起来还是很靠谱的文章 xff1a Q
  • 手动修改KDM、KSPLASH主题

    system xff1a ubuntu 13 04 x64 Qt 4 8 4 KDE Development Platform 4 10 5 kde4 config 1 0 自从安装了KDE桌面管理系统至今 xff0c 一直在折腾系统主题
  • Linux 安装Python3

    python3 下载地址 python3 下载地址 https www python org downloads 选择自己需要的版本 此文中选择3 10 9 下载源码压缩包 可下载到本地后上传至Linux服务器也可以复制下载地址 span
  • VirtualBox 重要的配置文件和配置程序

    之前我安装了VirtualBox 来跑 Linux 虚拟机 开始设置的时候设了 4G 内存 结果后来不能改了 造成的结果就是一开机 内存飙到40 一开VirtualBox 直接飙到95 然后开个数据库开个EBS 服务 基本就不用干其他事情了
  • 错误 This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck~~~

    This inspection detects names that should resolve but don 39 t Due to dynamic dispatch and duck typing this is possible
  • LAMP源码安装图文详解(超详细)

    文章目录 一 LAMP架构概述1 各组件的主要作用2 各组件安装顺序 二 编译安装Apache httpd服务1 关闭防火墙 xff0c 将安装Apache所需软件包传到 opt目录下2 安装环境依赖包3 配置软件模块4 编译及安装5 优化
  • MySQL数据备份恢复全攻略,让我们通过简单几步找回丢失的数据

    编写初衷 没有人生下来天生就是会计算机的 xff0c 就拿笔者来说的话 xff0c 也是从Windows gt Centos gt Ubuntu一步一步慢慢学习 xff0c 积累下来的 为了让大家能够更快更高效率的学习 xff0c 从今天开