MYSQL Got error 28 from storage engine

网络查找该异常信息,发现

Got error 28 from storage engine

查了一下,数据库文件所在的盘应该没事,应该是数据库用的临时目录空间不够

引用
磁盘临时空间不够导致。
解决办法:
清空/tmp目录,或者修改my.cnf中的tmpdir参数,指向具有足够空间目录


上面的说法应该比较清楚,还有一个类似的:



引用
mysql报以下错的解决方法

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

出现此问题的原因:临时空间不够,无法执行此SQL语句

解决方法:将tmpdir指向一个硬盘空间很大的目录即可

linux下执行查找磁盘大小;

[root@linux11 logs]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             112G   25G   81G  24% /
/dev/sda6             965M   18M  898M   2% /tmp
/dev/sda3              29G   25G  0  100% /var
/dev/sda1             190M   11M  170M   7% /boot
tmpfs                 1.7G     0  1.7G   0% /dev/shm
/home                 112G   25G   81G  24% /home

先不管MYSQL临时目录是哪个,单看var目录被占尽,就值得查找一番。发现/var/log/httpd目录下,大量网站访问日志文件,access、error等等,积压了好几年的日志文件。

[root@linux11 logs]# find /var/ -size +100000000c


还可执行以上命令,查找某个文件下的超过100M的文件

如果不把以上磁盘问题清理清楚,一直启动mysql时会报异常信息:

Number of processes running now: 0
141031 22:17:21  mysqld restarted
141031
Number of processes running now: 0
141031 22:17:21  mysqld restarted
141031 22:17:21  InnoDB: Started; log sequence number 4 1212960744
141031 22:17:21 [ERROR] /usr/libexec/mysqld: Error writing file '/var/run/mysqld/mysqld.pid' (Errcode: 28)
141031 22:17:21 [ERROR] Can't start server: can't create PID file: No space left on device

显示,没有磁盘上多余空间,大致是引起了MYSQL的执行异常问题。将磁盘清理完之后

执行 

service mysqld start

直接启动成功,折腾半天,小有所成,MARK一下。

成长的乐趣,在于分享!
大龄程序员,一路走来,感慨颇多。闲暇时写写字,希望能给同行人一点帮助。
本文版权归作者growithus和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/growithus/p/11012261.html