开启binlog
#编辑模式进入/etc/my.cnf
vim /etc/my.cnf
# i开始进行编辑
# 在#log bin 后面添加内容
[mysqld]
server_id=1
log_bin = mysql-bin
binlog_format = ROW
expire_logs_days = 30
# 重启mysql
service mysqld restart
# 或者
systemctl restart mysqld
重置命令
# 1、查看binlog日志
mysql> show binary logs;
# 2、删除某个日志文件之前的所有日志文件
purge binary logs to 'mysql-bin.000002';
# 3、清理2019-09-09 13:00:00前binlog日志
PURGE MASTER LOGS BEFORE '2022-04-28 13:00:00';
# 4、清理3天前binlog日志
PURGE MASTER LOGS BEFORE DATE_SUB(NOW( ), INTERVAL 3 DAY);
--BEFORE,变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式。这里的清理是指从此刻-3243600s前的文件,是此文件最后更新的时间。
--时间和文件名一定不可以写错,尤其是时间中的年和文件名中的序号,以防不小心将正在使用的binlog删除!!!
--切勿删除正在使用的binlog!!!
# 5、重置所有的日志
reset master;
# 6、手动切换binlog日志
flush logs
--或者flush binary logs
查看binlog
# 查找mysqlbinlog的工具路径。
find / -name mysqlbinlog
# 将指定时间间隔存入read.txt中,-v是将二进制内容转成sql
mysqlbinlog -v --start-datetime=``"2022-04-28 00:00:00" --stop-datetime=``"2022-04-28 23:59:59" /var/lib/mysql/mysql-bin.000002 > read.txt
#
参考:
MySQL Binlog详解.
MySQL清理binlog日志.
mysql查看binlog日志 .
MySQL Reference Manual.