mysql 线程阻塞,强杀线程以后导致服务不能启动

mysql 线程阻塞,强杀线程之后导致服务不能启动

今天碰到一个问题,可能是由于sql语句或程序导致mysql线程阻塞,采取线程强杀之后,导致mysql 服务不能启动。

此情况,可查看Mysql的启动错误日志

发现如下信息

141018 19:21:17 [ERROR] Failed to open log (file './mysql-bin.000662', errno 13)

141018 19:21:17 [ERROR] Could not open log file

141018 19:21:17 [ERROR] Can't init tc log

141018 19:21:17 [ERROR] Aborting

原因是:采取线程强杀,导致原本写入的日志文件没能生成,但mysql-bin.index中已经生成,所以启动的时候mysql-bin.index找不到该文件

解决办法:
1. 建立tmp目录
    cd /data1/mysql/
    mkdir tmp
 chown -R mysql:mysql tmp
2.  进入/data1/mysql/log/ 
    发现 并不存在mysql-bin.001618 这个日志文件
 但是mysql-bin.index里面却有mysql-bin.001618的记录
 办法是:
 cp mysql-bin.index mysql-bin.index.bak 备份一下,以防万一
 然后编辑mysql-bin.index 去掉 mysql-bin.001618 这一行数据