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

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值