为什么mysql5.7版本开启binlog后mysql启动不起来

在mysql5.7版本开启binlog(在配置文件中添加log_bin=mysqlbinlog)的时候会报错,查看错误日志发现如下错误:

2019-04-08T07:35:16.245337Z 0 [ERROR] You have enabled the binary log, but you haven't provided the mandatory server-id. Please refer to the proper server start-up parameters documentation
2019-04-08T07:35:16.245412Z 0 [ERROR] Aborting

这个错误的意思是:你已经开启了二进制日志,但是还没有提供强制的服务器id,请参考适当的服务器启动参数文档。
意识到这个错误,所以我在配置文件中又加了一行server-id=10

[root@rhel1 ~]# vi /etc/my.cnf

[mysqld]

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
slow_query_log=1
long_query_time=2
log_queries_not_using_indexes=1
server-id=10
log_bin=mysqlbinlog

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default_time_zone=Asia/Shanghai

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

然后重启mysql

 mysqladmin -uroot -p123abcA, shutdown
mysqld_safe --defaults-file=/etc/my.cnf &

就可以启动mysql了,查看binlog是否开启,如下:

mysql> mysql> show variables like "%log_bin%";
+---------------------------------+----------------------------------+
| Variable_name                   | Value                            |
+---------------------------------+----------------------------------+
| log_bin                         | ON                               |
| log_bin_basename                | /var/lib/mysql/mysqlbinlog       |
| log_bin_index                   | /var/lib/mysql/mysqlbinlog.index |
[root@rhel1 ~]# ll /var/lib/mysql | grep 'mysqlbinlog'
-rw-r-----. 1 mysql mysql      154 Apr  8 16:07 mysqlbinlog.000001
-rw-r-----. 1 mysql mysql       21 Apr  8 16:07 mysqlbinlog.index

这样binlog就开启成功了。
注意:不管什么时候要养成随时查看错误日志的习惯,你才能发现错误错在何处,寻找方法解决。

你可能感兴趣的:(mysql体系结构)