今天碰到一个问题,可能是由于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 这一行数据