mysql 查看日志
首先,先要知道bin log 有没有开启;
show variables like "log_%";
像这种就是没有开启,这个时候,就需要先进行开启;
假设,已经开启了bin log 日志;
这里,就是有命名规则;像我这边就是 DESKTOP-0AIBBVF-bin; 所以根据这个来查找文件即可
查看有多少个bin log文件
show binary logs;
注意:当停止或重启服务器时,服务器会把日志文件记入下一个日志文件系统,Mysql会重启时生成一个新的日志文件,文件序号递增;
查看其中一个binlog 文件
查看的binlog 文件名可以去你自己的数据库文件中查找:
show binlog events in 'DESKTOP-0AIBBVF-bin.000125';
结果如下:
每更新一句语句,都会有记录; 这时候,发现看不懂啊;
原因如下:
在mysql 8 的时候,升级为row 复制了不是基于(statement) sql语句的复制;
statement:
优点:记录每一条修改数据的sql,大大减少了binlog 日志量,节约了IO 缺点:对一些特殊功能的复制效果不是很好。比如:函数、存储过程的复制;
row
优点:记录每行修改的记录,可以正确复制每一行的情况;
缺点:row格式会记录每行记录修改的记录,这样可能会产生大量的日志内容,比如一条update语句修改100条记录,那么这100条记录的修改都会被记录到binlog中,这样会造成binlog日志量会很大;
Mixed
一般情况下,使用statement来进行保存,对于一些statement无法完成主从复制的操作,则采用row格式来保存binlog,是row 和 statement的结合;
测试:
把默认的row进行修改,修改当前数据库日志格式为statement;
然后,在进行删除语句;再查看binlog日志;果然,体现出来了;