mysql中如何开启binlog?开启二进制日志文件?binary log?

Posted QA-3K

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中如何开启binlog?开启二进制日志文件?binary log?相关的知识,希望对你有一定的参考价值。

需求描述:

  开启mysql的binlog即binary log日志功能,在此记录下.

版本描述:

  •   mysql版本:5.7.21-log

操作过程:

1.修改my.cnf并且将以下参数加入其中,重启mysql实例

server-id=11           #由于bug,所以需要设置该参数.否则无法启动mysql实例
log-bin = mysql-bin    #其中mysql-bin代表的是basename就是生成二进制日志文件的前缀部分,默认的位置在datadir目录下,也可以设置为其他的路径

2.查看binlog相关系统参数值

mysql> show variables where variable_name in (log_bin,log_bin_basename,log_bin_index);
+------------------+-----------------------------+
| Variable_name    | Value                       |
+------------------+-----------------------------+
| log_bin          | ON                          |
| log_bin_basename | /mysql/data/mysql-bin       |
| log_bin_index    | /mysql/data/mysql-bin.index |
+------------------+-----------------------------+
3 rows in set (0.00 sec)

备注:在my.cnf中设置好log-bin之后,log_bin自动设置为ON,basename设置为mysql-bin,index文件也自动生成,index文件记录的就是所有的二进制文件的名称及位置信息.

3.查看生成的二进制文件在文件系统上的表现形式

[[email protected] data]# ls -ltr mysql-bin.*
-rw-r----- 1 mysql mysql 154 Jul 25 11:17 mysql-bin.000001
-rw-r----- 1 mysql mysql  19 Jul 25 11:17 mysql-bin.index

备注:mysql-bin是设置的basename,点号后面的序号是自动生成的,启动时,自动生成第一个文件,当该文件写满的时候,会写2,然后3,依次类推.

4.查看index文件的内容

[[email protected] data]# cat mysql-bin.index    #如果mysql-bin不在默认的路径,那么index文件中记录的就是绝对路径加文件名
./mysql-bin.000001

5.注意事项

  在官方文档中,说启用binary log只是需要将log-bin=mysql-bin设置即可,但是因为有bug,所以必须要设置server-id否则启动不成功.

官方文档解释如下:

If you specify the --log-bin option without also specifying a --server-id, the server is not allowed to start. (Bug #11763963, Bug #56739) 

6.如果my.cnf中log-bin不加basename

server-id=11 
log-bin               #后面不接basename

7.重启mysql实例,查看log-bin相关信息

mysql> show variables where variable_name in (‘log_bin‘,‘log_bin_basename‘,‘log_bin_index‘);
+------------------+------------------------------+
| Variable_name    | Value                        |
+------------------+------------------------------+
| log_bin          | ON                           |
| log_bin_basename | /mysql/data/testvm-bin       |
| log_bin_index    | /mysql/data/testvm-bin.index |
+------------------+------------------------------+
3 rows in set (0.01 sec)

备注:如果不加basename,那么就是主机名-bin,主机名-bin.index这样的命名方式.

 

文档创建时间:2018年7月19日15:06:57

以上是关于mysql中如何开启binlog?开启二进制日志文件?binary log?的主要内容,如果未能解决你的问题,请参考以下文章

mysql ,binlog 日志查询

mysql ,binlog 日志查询

使用Binlog+FlinkCDC实时监控数据

怎么开启mysql日志功能

mysql日志全部都没有开启,怎么回事

mysql配置开启binlog与慢查询日志功能