mysql的bin_log

2022-12-27  本文已影响0人  东南枝下

bin_log

以事件形式记录了所有的DDL和DML语句
可用于数据恢复和主从复制

查看bin_log是否开启

使用show variables like 'log_bin';

图片.png
可以看到我现在是关闭状态

开启bin-log日志

添加配置,由于我使用的是docker容器部署的mysql实例,所以需要进到到容器中

docker exec -it mysql5.7 bin/bash

// docker 中mysql配置文件目录
cd /etc/mysql/mysql.conf.d/

cat >>mysqld.cnf<<EOF
> log-bin=mysql-bin
> server-id=1
> binlog_format=MIXED
> expire_logs_days=3
> max_binlog_size=100m
> binlog_cache_size=10m
> max_binlog_cache_size=512m
> binlog_stmt_cache_size=100m
> max_binlog_stmt_cache_size=100m
> EOF

重启mysql,由于我用的是docker,重启容器就好


图片.png

常用命令

show master logs : 查看所有binlog日志列表

show master status : 查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值。

flush logs : flush 刷新log日志,自此刻开始产生一个新编号的binlog日志文件;每当mysqld服务重启时,会自动执行此命令,刷新binlog日志;在mysqlddump备份数据时加-F选项也会刷新binlog日志;

reset master : 重置(清空)所有binlog日志

查看bin_log

进入bin_log日志目录,使用mysqlbinlog工具查看

cd /var/lib/mysql

mysqlbinlog mysql-bin.000001 

在命令行界面查看

show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];

例:show binlog events in 'mysql-bin.000001' from 298 LIMIT 0,1

图片.png

参考:https://blog.csdn.net/sinat_32430939/article/details/121533785
https://blog.csdn.net/weixin_46415189/article/details/127387933
https://blog.csdn.net/justlpf/article/details/82908740

上一篇下一篇

猜你喜欢

热点阅读