mysql Got error 28 from storage engine详解数据库

情景再现:

今天在执行修改表的命令,alter table doctor_info时,出现如下图错误

mysql Got error 28 from storage engine详解数据库

解决过程:

百度后发现原因是,mysql的临时目录空间不足。

1、首先,查询mysql的临时目录:

show variables like '%tmp%';


mysql Got error 28 from storage engine详解数据库

发现tmpdir的目录是 根目录下的/tmp

2、查看临时目录下的各个文件大小和总大小

首先查看/tmp目录下各个文件所占用大小,

ls -alth /tmp

mysql Got error 28 from storage engine详解数据库

/tmp目录下所有文件总的大小,

du -sh /tmp

mysql Got error 28 from storage engine详解数据库

我们发现/tmp下的文件占用都非常小,所以我继续查看/tmp所在磁盘的使用情况,

mysql Got error 28 from storage engine详解数据库

3、误解

当时发现used是50G,Use%是100%,所以证实了是,临时目录没有空间可用了,后来查到是因为tomcat的日志文件过多导致了磁盘满了。

我最初以为,/tmp的大小是50G,跟tomcat的日志文件/logs没有关系呀。原来我搞错了,这个50G是整个磁盘的大小,所有的文件夹共用这50G,到这里就真相大白了。

因为tomcat日志文件,占用了整个磁盘,导致临时目录没有空间,然后就出现了get error 28 from storage engine.

总结:

1、linux不可以指定某个文件夹的大小,df -h的命令显示的size是整个磁盘的大小

2、df命令,可以显示某个文件所在磁盘的使用情况

3、du -sh /tmp,查看某个文件夹下所有文件总的大小

4、ls -alth可以显示某个文件夹下占用磁盘情况

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/3744.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论