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