聊聊数据库~6.SQL运维中篇 (4)

3.binlog.png

MySQL8:cat /etc/my.cnf |grep log(CentOS)

3.binlog2.png

Q:有些人可能疑惑了,为什么用show variables like 'log_bin';查询出来的结果和配置文件中不大一样啊?

PS:一般配置项中的参数都可以使用show variables like 'xx'来查询对应的值

3.log_bin.png

A:那是因为5.7之后版本分成了两个参数:log_bin和log_bin_basename

PS:配置文件的log_bin=xxx相当于命令中的log_bin和log_bin_basename

mysql> show variables like 'log_bin%'; +---------------------------------+-----------------------------+ | Variable_name | Value | +---------------------------------+-----------------------------+ | log_bin | ON | | log_bin_basename | /var/lib/mysql/binlog | | log_bin_index | /var/lib/mysql/binlog.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | +---------------------------------+-----------------------------+ 5 rows in set (0.00 sec) 开启演示

MariaDB开启binlog图示:(CentOS)

4.MariaDB开启binlog.jpg

MySQL5.7演示:(UbuntuServer)

4.UbuntuServer下MySQL5.7演示.jpg

配置文件中修改:(show variables like 'binlog_format';:查看当前binlog基于什么格式

# 服务器标识 server-id=1 # 单机MariaDB可不开启 # 开启binlog并设置路径 # 不指定路径则默认在数据目录下 log_bin=binlog # 这个代表以binlog开头的文件 # binlog采用ROW|MIXED格式 # binlog_format=MIXED # 5.7默认是ROW

先看下文件前缀(log_bin=binlog)的概念,一张图就懂:

4.文件前缀.png

PS:如果log_bin只是指定一个名字,那么默认路径一般都是在数据文件的文件夹中

配置文件一般都会写,eg:datadir=http://www.likecs.com/var/lib/mysql,或者通过show variables like 'datadir';也可以查询到

虽然和SQLServer文件组不是一个概念,但有些相似 ==> log可以多个也可以动态调整

3.多日志文件.png

5.3.ROW模式下记录SQL

Q:虽然ROW记录能保证主从数据安全,但我们排查问题的时候往往需要知道SQL,而用段的记录方式又不合适,咋办?

A:有个新参数可以解决:binlog_rows_query_log_events,开启后就可以记录sql了

查看方式:show variables like 'binlog_row%';

mysql> show variables like 'binlog_row%'; +------------------------------+-------+ | Variable_name | Value | +------------------------------+-------+ | binlog_row_image | FULL | | binlog_rows_query_log_events | OFF | +------------------------------+-------+ 2 rows in set (0.01 sec) binlog演示

显示binlog列表:show binary logs;

刷新一份新的binlog:flush logs;(现在开始的二进制日志就记录在这个新文件中)

5.新建binlog.jpg

binlog现在是空的:(-vv:把二进制格式的日志显示为能读懂的字符串)

mysqlbinlog --no-defaults -vv --base64-output=DECODE-ROWS /var/lib/mysql/binlog.000006

5.新建binlog2.png

现在简单摸拟几个SQL操作,然后看看binlog:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxwsz.html