删除binlog日志 造成MySQL无法启动

在操作系统上直接删除binlog日志(rm binlog)造成MySQL无法启动([ERROR] Failed to open log [ERROR] Could not open log file [ERROR] Can’t init tc log [ERROR] Aborting)。

问题描述:
MySQL数据库所显示空间紧张,其中binlog日志占用了很多空间,脑袋一热就把所有binlog日志都给删除了。
并准备将MySQL data目录迁移到空间大的/u01目录,data目录拷贝完毕,并修改了datadir变量;然后重启MySQL,结果启动不起来。

MySQL重启操作,关闭正常,启动却报如下错误,无法启动。

问题分析:
MySQL启动服务,根据 mysql-bin.index 文件的记录,检查各个binlog文件是否存在,如果不存在则报出上面的错误。

解决办法:
将已经删除的binlog条目从mysql-bin.index文件中删除。MySQL顺利启动。

杜绝以上问题的措施:
1、绝对不能从操作系统上直接删除binlog日志,如rm binlog。
2、在MySQL中,使用PURGE BINARY LOGS命令删除binlog日志,才是最安全的办法。命令如下,

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注