突然发现,我的演示站点 http://stu.yushihua.vip 上面的数据全部没了,我想知道是什么原因,于是就想查看一下数据库的操作日志

mysql查询数据库的操作日志(宝塔)

  1. 确保mysql操作日志已打开
show variables like 'log_bin';

on表示已开启,如果未开启则去开启日志,查看配置文件my.cnf是否有关于log_bin的配置

如果没有则加上

server_id=1
log_bin = mysql-bin
binlog_format = ROW
  1. 查询日志文件
show master logs

  1. 使用mysql自带的mysqlbinlog查询二进制文件

参数说明:

-d database 筛选出要查询的数据库操作记录  
--start-datetime="yyyy-MM-dd HH:mm:ss"  获取特定时间开始的记录
-s 或者 --short-form 只查询SQL语句
--stop-datatime="yyyy-MM-dd HH:mm:ss"  获取特定时间结束的记录

例如:

/www/server/mysql/bin/mysqlbinlog /www/server/data/mysql-bin.000013 -d stu_yushihua_vip -s --start-datetime="2020-10-01 00:00:00" --stop-datetime="2020-10-24 00:00:00"

将查询结果导出到txt文件(加个>a.txt)

/www/server/mysql/bin/mysqlbinlog /www/server/data/mysql-bin.000013 -d stu_yushihua_vip -s --stop-datetime="2020-10-24 00:00:00" > a.txt

打开可以看到:

下面可以理解为每一个小节

BEGIN
/*!*/;
SET TIMESTAMP=1603594137/*!*/;
delete from `users` where `id` = 3
/*!*/;
COMMIT/*!*/;
SET TIMESTAMP=1603594141/*!*/;

每次执行一个sql语句,都会有开始的时间和结束的时间戳

mysql将时间戳转化为时间:

SELECT from_unixtime(1603594070, '%Y-%m-%d %H:%i:%S');

这样就可以看到,是什么时间,具体执行的什么sql语句了

Last modification:October 25th, 2020 at 11:53 am
哎呀呀,大家随意,随意就好!