网络查找该异常信息,发现
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一下。