情景再现:
今天在执行修改表的命令,alter table doctor_info时,出现如下图错误
解决过程:
百度后发现原因是,mysql的临时目录空间不足。
1、首先,查询mysql的临时目录:
show variables like '%tmp%';
发现tmpdir的目录是 根目录下的/tmp
2、查看临时目录下的各个文件大小和总大小
首先查看/tmp目录下各个文件所占用大小,
ls -alth /tmp
/tmp目录下所有文件总的大小,
du -sh /tmp
我们发现/tmp下的文件占用都非常小,所以我继续查看/tmp所在磁盘的使用情况,
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/tech/database/3744.html