MYSQL Got error 28 from storage engine

时间:2022-08-14 20:16:31

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

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一下。