欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【MySQL解惑笔记】Mysql5.7.x无法开启二进制日志

程序员文章站 2022-03-22 14:42:58
一、开启二进制日志 1)未开启二进制日志之前: 2)开启二进制日志 修改my.cnf并且将以下参数加入其中,重启mysql实例: 重启服务器: 3)查看开启状态; 4)注意事项 在官方文档中,说启用binary log只是需要将log-bin=mysql-bin设置即可,但是因为有bug,所以必须要 ......

一、开启二进制日志

1)未开启二进制日志之前:

mysql> show variables like 'log_bin';
+---------------+-------+
| variable_name | value |
+---------------+-------+
| log_bin       | on    |     #二进制日志是关闭的
+---------------+-------+
1 row in set (0.00 sec)

mysql> 

2)开启二进制日志

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

log_bin=mysql-bin  #其中mysql-bin代表的是basename就是生成二进制日志文件的前缀部分,默认的位置在datadir目录下,也可以设置为其他的路径
server-id=11   #由于bug问题必须设置这个id,数字随便写

datadir=/var/lib/mysql   #默认指定文件存放位置,可修改,但是要注意权限

重启服务器:

systemctl restart mysqld

3)查看开启状态;

mysql> show variables like 'log_bin';
+---------------+-------+
| variable_name | value |
+---------------+-------+
| log_bin       | on    |
+---------------+-------+
1 row in set (0.00 sec)

注:在my.cnf中设置好log-bin之后,log_bin自动设置为on,basename设置为mysql-bin,index文件也自动生成,index文件记录的就是所有的二进制文件的名称及位置信息.
mysql> show variables where variable_name in ('log_bin','log_bin_basename','log_bin_index'); +------------------+--------------------------------+ | variable_name | value | +------------------+--------------------------------+ | log_bin | on | | log_bin_basename | /var/lib/mysql/mysql-bin | | log_bin_index | /var/lib/mysql/mysql-bin.index | +------------------+--------------------------------+ 3 rows in set (0.01 sec) mysql>

4)注意事项

在官方文档中,说启用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) 

 

参考博客: