Mysql导出binlog日志
前提条件:进入至数据库服务器中
- windows打开mysql程序目录下的my.ini配置文件
Linux打开/etc/my.cnf
查找log-bin配置项,找到Mysql binlog日志存放位置及文件头部名
2、找到需要导出数据的,对应时间范围的binlog日志,如此例中,binlog文件名开头为log-bin需要导出2021/1/19 15:00执行的sql语句,log-bin.000013最后修改时间为2021/1/7 17:33,log-bin.000014文件的最后修改时间为2021/1/19 15:19,说明2021/1/19 15:00执行的sql语句在log-bin.000014文件中
- Windows:在mysql bin目录下打开一个cmd窗口
执行如下命令:
mysqlbinlog --no-defaults --base64-output=DECODE-ROWS -v E:/dhgsoft/mysql-8.0.22-winx64/logs/log-bin.000014 > E:/14.sql
其中:
E:/dhgsoft/mysql-8.0.22-winx64/logs/log-bin.000014:binlog日志位置及文件名,请自行根据实际情况进行修改
E:/14.sql:结果输出位置,请自行根据实际情况进行修改
Linux:使用cd命令进入到mysql存放binlog日志的目录中,执行如下命令
mysqlbinlog --no-defaults --base64-output=DECODE-ROWS -v log-bin.000014 > /tmp/14.sql
其中:
log-bin.000014:binlog日志文件名,请自行根据实际情况进行修改
/tmp/14.sql:结果输出位置,请自行根据实际情况进行修改
--base64-output:用来控制binlog部分是否显示出来的,指定为decode-rows表示不显示binglog部分
-v:可以从binlog中显示sql语句
4、命令执行完成后,Linux可执行使用vim命令进行查看,Windows需要对sql文件进行切割至小文件后进行查看
如下附件为Windows使用的大文件切割工具:
解压后双击执行【Knife.exe】
程序运行后,依次点击【文件】——【文件切割】
选择如下图中的【请选择要切割的大文件】下的【…】,选择需要切割的14.sql文件
在目标文件【规格】处填写【50】,即将大文件切割成多个50M小文件
点击【保存到】下方的【…】,自行选择需要保存切割文件的位置
点击【开始切割】
切割完成后,即可在设定的切割文件保存路径显示切割后的文件
对于切割后的binlog日志文件,可使用NotePad++打开即可
输出示例结果如下:
根据时间点或表名,可自行查找增删改语句执行记录,比如,需要查询schedule_job表的记录增删改情况,则查找关键字【`schedule_job`】