彻底解决mysql报错:1030, 'Got error 28 from storage engine'

恕我直言,网上文章千篇一律,没一个能解决的,都说清一下内存就好了,那倒是教不会的小白清理呀...无语.

这个问题确实是服务器系统盘满了,mysql指定的临时文件目录满掉,大概就是这个意思.

下面解决/dev/vda1系统盘满了,其实我压根不知道/dev/vda1这在哪,是什么,后来了解这是 virtio-block 类型的设备,科普一下:

以  'c' 开头的一行表示该设备是一个字符设备,以 'b' 开头的行表示这是一个块设备。

首先登录服务器:执行df   -h   意思是:

检查一台服务器磁盘使用空间,发现磁盘已经使用了100%(这是我解决之后截的图,已经恢复正常,剩余42%足够了)

1、cd到 根目录,du -sh * 看哪个目录占用空间大,有的高达十几个G,那么就要盯住这个目录了

2、cd 占内存大的目录,继续 du -sh * 

发现data目录居然15G,进入data目录:cd data

然后查找大文件:

find -size +100M 意思是查找大于100M的文件,M是兆,再大点可以用G

3、重复前两步,根据实际情况删除或者移走

4、日志的话可以运行cat /dev/null > file.log清空

亲测,mysql文件夹下的catalina.out是可以删除的:

echo "" > catalina.out 即可,一般这个日志文件比较大.

5、软件包的话,不需要的可以rpm -e 卸载或者rm -rf dir

大文件删除的差不多了,再df   -h,磁盘空间预留一小半即可,绝对完美解决mysql 1030 问题!

命令细节补充:

具体:可以通过下面的方法进行清理:

使用如下命令查找大于100M的大文件,发现有几个日志文件及临时文件比较大,使用rm –rf删除即可。

    find / -size +100M -exec ls -lh {} \;

    也可以使用 du -h --max-depth=1  /路径  查询文件夹占用显示该目录占用空间的总和

     譬如:du -h --max-depth=1  /var

    删除文件时,要小心,不要删除系统文件了 :)

命令补充:

命令及参数介绍:

ls命令:

-h 提供更高的可读性,以K(KB)    M(MB)     G(GB)为单位显示

-t依照文件最后修改的时间排序

-l长列表显示

du命令:

-s只显示总和

-h 同上

ls -lht查看文件夹下面文件大小  du -sh查看文件总大小 

df -lh 查看系统内存  :

会出现如下的显示:

Used:已经使用的空间

Avail:可以使用的空间

Mounted on:挂载的目录

/dev/vda 和 /dev/vdb 都是 virtio-block 类型的设备,而 /dev/sda 是 sd 即 SCSI 类型的设备。 

常见的命名:

fd:软驱 

hd:IDE 磁盘 

sd:SCSI 磁盘 

tty:terminals 

vd:virtio 磁盘 

猜你喜欢

转载自blog.csdn.net/harry5508/article/details/84345684