Mysql报can not create to file /tmp/xxx Errcode:28的解决方案

问题场景

1、当操作数据库查看表结构出现如下图的报错时。

2、网站SESSION莫名其妙失效时。

都有可能是/tmp缓存文件无法创建。

可能出现的原因

1、磁盘已满。可以用df -TH命令进行查看。

2、索引节点已满。可以用df -i命令进行查看。

索引节点已满的排查解决方案

1、 查看根路径下各个文件夹的文件数

for i in /*; do echo $i; find $i |wc -l|sort -nr; done   

通过反复排查,发现/var/spool/postfix/maildrop/下有180W+文件。

2、删除文件夹下的文件,执行rm -rf ./* 竟然报错,参数列表过长。原因是文件太多了。

3、换种方式进行删除。

cd /var/spool/postfix/maildrop/ 
find . -name "*" | xargs rm -rf   

大约在停顿了20秒后,显示删除成功。至此问题解决。

本文解决方案摘自以下文章

1、http://blog.csdn.net/wangjunjun2008/article/details/50724799

2、http://blog.csdn.net/shanhuhau/article/details/51009869

发表评论