一、查看下自己的MySQL是否开启了binlog日志

# 是否启用binlog日志   OFF:关闭 ON:开启
show variables like 'log_bin';

二、开启binlog日志

在linxu服务器中找到my.cnf :

mysql --help | grep 'Default options' -A 1

执行结果

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

可以看到mysql优先加载/etc/my.cnf中的配置。

所以需要在/etc/my.cnf中mysqld节添加开启binlog的配置,如下有两种方式:

#第一种方式:
#开启binlog日志
log_bin=ON
#binlog日志的基本文件名
log_bin_basename=/var/lib/mysql/mysql-bin
#binlog文件的索引文件,管理所有binlog文件
log_bin_index=/var/lib/mysql/mysql-bin.index
#配置serverid
server-id=1 #第二种方式:
#此一行等同于上面log_bin三行
log-bin=/var/lib/mysql/mysql-bin
#配置serverid
server-id=1

修改完配置后,重启mysql。

systemctl stop mysqld.service
systemctl start mysqld.service
systemctl status mysqld.service

在navicat中或者在服务器中进入mysql 执行SHOW VARIABLES LIKE 'log_bin'; Value 值为 ON即可。

SHOW VARIABLES LIKE 'log_bin'

PS:mysql启动停止命令

一、 启动
1、使用 service 启动:service mysql start
2、使用 mysqld 脚本启动:/etc/inint.d/mysql start
3、使用 safe_mysqld 启动:safe_mysql& 二、停止
1、使用 service 启动:service mysql stop
2、使用 mysqld 脚本启动:/etc/inint.d/mysql stop
3、mysqladmin shutdown 三、重启
1、使用 service 启动:service mysql restart
2、使用 mysqld 脚本启动:/etc/inint.d/mysql restart

二、使用binlog日志恢复数据

首先在21:21分 我的fo_service库的admin表中有这么几条数据

随后我向admin表插入了三条数据

但是呢 我在21:24分误删除了这三条数据, 我想恢复怎么办呢

(有的小伙伴会说直接把上面的insert语句拿下来不就完了吗,歪,那我们还用binlog干嘛)

恢复过程:

1、查看当前服务器的MySQL使用的binlog文件及大小(这个是会有多个的,我这里演示所以只有一个)

show binary logs;

2、查看binlog的目录

show global variables like '%log_bin%';

3、导出sql文件

执行完下面这个命令,输出的sql文件在当前你所在的目录位置。

(注意自己的mysql-bin.000001文件所在目录,你的也可能是mysql-bin.000005哦,复制的时候注意改开始和结束时间,改路径 /var/lib/mysql/mysql-bin.000001)

两种都可以
mysqlbinlog --no-defaults --database=fo_service --start-datetime="2022-04-25 21:21:00" --stop-datetime="2022-04-25 21:23:00" -v /var/lib/mysql/mysql-bin.000001 > nobase64.sql mysqlbinlog --no-defaults --database=fo_service --start-datetime="2022-04-25 21:21:00" --stop-datetime="2022-04-25 21:23:00" -v --base64-output=decode-rows /var/lib/mysql/mysql-bin.000001 > base64.sql

4、执行命令,还原数据

输出文件之后 将文件下载到本地 (我放在D盘的根目录下)

将服务器上的库复制到本地一份

使用黑窗口(cmd)的root账号登录mysql后

执行source命令

查看本地的admin表的数据,可以看见删除的数据恢复了(包括数据的主键ID都是恢复的,大可放心)。

最后将本地的数据迁移到服务器上的数据库中即可。

文章参考  https://blog.csdn.net/jolly10/article/details/80077366

最新文章

  1. SQL Server 常用内置函数(built-in)持续整理
  2. .htaccess语法之RewriteCond与RewriteRule指令格式详细解释
  3. windows下mysqlbinlog二进制恢复
  4. python 中*args 和 **kwargs
  5. ORM艰辛路之EF
  6. BSD学习(BSD系统的历史和目标)
  7. 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred) 几道简单题的题解
  8. nginx 常用的 URL 重写方法
  9. WCF的配置文件中的要素
  10. 【POJ3208】 (DP)
  11. linux核心之进程管理
  12. linux 下配置 MAVEN
  13. RomUtil【Android判断手机ROM,用于判断手机机型】
  14. mysql强制索引和禁止某个索引
  15. “放到桌面”的Servlet实现
  16. spark-shell的Scala的一些方法详解
  17. git入门 创建版本库, 版本管理 分支 标签
  18. vi中换行、翻页和查找功能
  19. notepad去掉空行
  20. Linux系统下/tmp目录文件重启后自动删除,不重启自动删除10天前的/TMP的文件(转)

热门文章

  1. Educational Codeforces Round 119 (Div. 2), (C) BA-String硬着头皮做, 能做出来的
  2. 谈谈.NET Core下如何利用 AsyncLocal 实现共享变量
  3. 2021.08.06 P4392 Sound静音问题(ST表)
  4. 数据结构 - AVL 树
  5. Linux(ubuntu)二进制安装mysql8.0
  6. vscode 开发项目, Prettier ESLint的配置全攻略(基础篇)
  7. XCTF练习题---MISC---pure-color
  8. npm install xxxx --legacy-peer-deps命令是什么?
  9. Linux服务器安全加固10条建议
  10. 日期和时间API - 读《Java 8实战》