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.查看生成的二进制文件在文件系统上的表现形式

[root@testvm 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文件的内容

[root@testvm 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

上一篇:dialog 中装listview并让每一个item分隔悬空,并具有radiobutton的效果


下一篇:java封装的方法