查看binlog日志文件内容

一般安装了mysql client会有binlog的查看工具:mysqlbinlog,找到需要查看的binlog文件,在shell环境下执行命令查看详情:

mysqlbinlog mysql-bin.000001

RelayLog文件读取错误

从服务器上出现了无法还原的错误信息,如下:

image-20210416132554400

用下面的命令查看 relay-log文件,稍等片刻,可以定位到错误信息:

1
mysqlbinlog --base64-output=decode-rows -vvv  DXHJ-SH-30-relay-bin.000029 > bbb.sql

如果是读取的文件损坏,可以重新指定同步点,重新读取主的binlog日志在从服务器还原即可。

在从服务器操作:

1
2
3
4
5
6
7
8
# show slave status\G
Relay_Master_Log_File: mysql-bin.000031
Exec_Master_Log_Pos: 745022638

# 分三步:停止slave,改变同步点,开始同步。
# stop slave;
# change master to master_log_file='mysql-bin.000031', master_log_pos=745022638;
# start slave;

就上面几步,解决战斗,是不是很简单。

查询当前MySQL执行的所有SQL语句

1
2
3
4
# 查询当前数据库设置,可以实时打开或者关闭当前SQL语句的执行日志。不需要重启数据库。
show variables like 'general%';
set global general_log=off;
set global general_log=ON;

image-20211019094156937

在对应的日志文件WEB-DB1.log中会有当前数据库执行的所有SQL语句。

日志文件太大重置的办法

1
2
3
4
5
# 先关闭日志,然后删除日志文件,再次启动日志,就会自动生成新日志文件了
# 比如 query-slow.log
show variables like '%slow_query%';
set global slow_query_log=OFF;
set global slow_query_log=ON;

image-20221211195050266

(完)