彻底解决mysql报错:1030, Got error 28 from storage engine
报错原因是服务器系统盘满了,或者mysql指定的临时目录满了,
下面解决/dev/vda1系统盘满,
以 'c' 开头的一行表示该设备是一个字符设备,以 'b' 开头的行表示这是一个块设备。
/dev/vda 和 /dev/vdb 都是 virtio-block 类型的设备,而 /dev/sda 是 sd 即 SCSI 类型的设备。
1.首先登录服务器:执行df -h 检查下服务器磁盘使用空间,看磁盘是否已经使用了100%
然后cd到 根目录,du -sh * 看哪个目录占用空间大,有的高达十几个G,那么就要盯住这个目录了
2、cd 占内存大的目录,继续 du -sh *
发现data目录居然15G,进入data目录:cd data然后查找大文件:
文件查找命令:
find -size +100M
意思是查找大于100M的文件,M是兆,再大点可以用G
也可以查询文件夹占用显示该目录占用空间的总和:
使用:du -h --max-depth=1 /路径
举例:du -h --max-depth=1 /var
这是查看哪个文件夹占目录内存最大
如果想定位大文件:
ls -lhS
这是将文件从大到小展现
3、重复前两步,根据实际情况判断删除或者移走
4、如果日志太大的话可以清空
运行命令:
cat /dev/null > file.log
亲测,mysql文件夹下的catalina.out是可以删除的,执行:
echo "" > catalina.out
一般这个日志文件比较大.
5、如果是软件包太大的话,不需要的可以卸载
执行卸载
rpm -e 软件名
或者删除
rm -rf 文件夹名
6、大文件删除的差不多了,再次df -h,磁盘空间预留一小半即可,绝对完美解决mysql 1030 问题!
MySQL 返回: #1030 - Got error 28 from storage engine
根据返回值,可以判断应该是某挂在分区空间已满造成。
[root@www.linuxidc.com ~]# df -lh Filesystem
容量 已用 可用 已用% 挂载点 /dev/mapper/VolGroup00-LogVol00 45G 43G 0 100% / /dev/xvda1 99M 12M 83M 13% /boot /usr/tmpDSK 512M 0 512M 0% /dev/shm
其中/dev/shm的确是空间不足,而且这个应该是cPanel,知道原因之后就容易解决 #/etc/init.d/mysql stop #umount /dev/shm #rm /usr/tmpDSK -rf #vim /scripts/securetmp 修改其中my $tmpdsksize =512000; #Must be larger than 250000 保存退出后,启动mysql就恢复正常。
本人情况不太一样,本人是找到mysql的安装路径,之前没有配置日志路径,默认安装时,日志放在了/var/lib/mysql 目录下,找到几个占空间大的文件rm -rf 文件名 删除,在df -lh 查看下,空间降下来了,直接service mysql start 启动mysql,问题解决
|