恕我直言,网上文章千篇一律,没一个能解决的,都说清一下内存就好了,那倒是教不会的小白清理呀...无语.
这个问题确实是服务器系统盘满了,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 磁盘