在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就开启成功了。
注意:不管什么时候要养成随时查看错误日志的习惯,你才能发现错误错在何处,寻找方法解决。