mysql二进制日志文件出错,mysql服务无法启动怎么办?

发布时间:2020-08-31编辑:脚本学堂
有关mysql二进制日志文件报错mysql-bin.000370' not found (Errcode: 2)的解决方法,导致mysql服务无法启动,可以参考下本文提供的处理方法。

有时会遇到mysql无法启动的问题,原因可能出在mysql二进制日志文件上,比如本文分享的这个案例就是。
 

mysql二进制<a href=http://www.jb200.com/article/957.html target=_blank class=infotextkey>日志文件</a>报错mysql-bin.000370' not found (Errcode: 2)

打开phpmyadmin发现连不上mysql数据库,重启mysql启动不起来,查看mysql日志,有如下错误:
 

mysqld: File '.mysql-bin.000370' not found (Errcode: 2)
141120 13:23:13 [ERROR] Failed to open log (file '.mysql-bin.000370', errno 2)
141120 13:23:13 [ERROR] Could not open log file
141120 13:23:13 [ERROR] Can't init tc log
141120 13:23:13 [ERROR] Aborting
 

进入mysql/data目录,手动删除mysql-bin.xxxxx相关文件或进入mysql命令行执行:RESET MASTER删除全部日志,重启mysql。

查询得知Mysql Data目录生成的大量mysql-bin.xxxxx文件是叫做MySQL Binary Log。

mysql二进制日志文件的二个作用:

1、mysql数据库恢复。

2、在主从服务器上提高复制的可靠性。
这些日志可以mysqlbinlog工具查看:
 

#mysqlbinlog mysql-bin.xxxxx

若不需要这些mysql二进制日志文件,可以在my.ini中注释掉以下两行:
 

#log-bin=mysql-bin
#binlog_format=mixed


 
另外一种方法,可以配置自动删除的天数,在mysql配置文件中,找到[mysqld],加上语句:
 

expire_logs_days = 3

也可以直接使用mysql命令配置:
 

mysql> SET GLOBAL expire_logs_days=1;

可以将二进制日志自动删除的天数设为3。
不设置的话默认为0,表示不自动删除。