mysql重启失败及清除磁盘空间总结

问题:客户端连接mysql出现Got error 28 from storage engine,mysql无法重启

解决过程:

1、通过/usr/local/mysql/data下的localhost.err启动失败日志查看最后错误日志,初步判断磁盘空间不够无法写入slow log:

2、寻找slow.log,通过/usr/local/mysql下my.cnf,找到slow.log路径

3、找到slow.log查看,慢查询日志达到3.6G多,通过清空慢查询日志,再次启动mysql成功

但是以上方法还是不能根治磁盘空间不足问题,继续寻找使用空间较大的根源:

1、df查看硬盘被占用了多少空间,还剩下多少空间,发现当时/dev/vda3使用达到180+G,挂载 根 目录

2、进入 / 目录,通过 du -h –max-depth=1 列出当前目录下子目录的使用统计,发现usr目录使用最多

3、进入usr目录 同样使用du -h –max-depth=1找到local使用最多

4、进入local找到

5、进入mysql找到使用最多的data

6、进入data找到使用最多的malm_ol_search占用69G,确认无用后删除

另外:

当du 和df统计出来的值不一致时可以考虑,是否存在已经删除但是实际linux并没与释放空间的情况。

比如,某些文件比如tomcat启动中,日志文件在写入,但是文件被手动删除了,在查看磁盘空间并不会被释放

原因:虽然删除了文件,对应的文件句柄没有被程序关闭,造成内核无法收回这些文件占用的空间

通过:lsof -n | grep deleted命令查找哪些文件句柄被占用。kill掉对应的进程即可。

This entry was posted in 测试开发. Bookmark the permalink.