服务器MySQL报错ERROR 1030 (HY000): Got error 28 from storage engine

正在家里看美剧在,同事微信call我表示所有接口都不行了,服务器貌似崩了。

查找原因

查看后发现是MySQL报错:

ERROR 1030 (HY000): Got error 28 from storage engine

一番google后发现是由于系统磁盘临时空间不足导致。
在服务根目录下运行:

[root@iZ****tecZ /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       40G   38G   16M 100% /
tmpfs           1.9G     0  1.9G   0% /dev/shm

可以看到已经磁盘已经占用100%了。

解决方案:

清理服务器,腾出空间来。
先找出哪些文件文件夹占用空间比较多,一步一步找到,一般是日志文件或者定时备份的文件压缩包比较占空间。

这里涉及到查找文件夹或者文件占用空间的比较有用的命令,记录一下:

[root@iZ****tecZ /]# du -hm --max-depth=2 | sort -nr | head -12
38053   .
34432   ./var
31423   ./var/www
1815    ./var/log
1579    ./bak20160908
1334    ./usr
1086    ./var/lib
972 ./bak20160908/geo12345
444 ./usr/share
416 ./lib
354 ./bak20160908/test
330 ./lib/modules
  • 命令du -hm --max-depth=2 | sort -nr | head -12这个命令的意思是目录下占用空间从大到小排序,列出前12个。
  • du -h --max-depth=2 /var/www/html这个命令可以列出/var/www/html目录下子文件夹和文件占用空间大小,深度--max-depth=2根据需要调节,表示子文件夹层数。
  • ll -lh当前文件夹下所有文件的大小、权限、归属等信息。

经过一番查找,由于忘记关掉ThinkPHPlogs功能,导致在网站的RunTime/Logs里面存在大量日志文件占掉了大把的空间,占了磁盘总大小40G中的23G,删除后服务器恢复正常。

一条评论

发表评论

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