您的位置:首页 > 数据库 > MySQL

由于空间不足导致Mysql无法启动

2011-12-02 13:20 225 查看
昨天又遇到了mysql数据库无法重启的问题,还以为是上次权限的原因,看了下mysql的错误日志:

111202 10:05:57 mysqld restarted

111202 10:05:57 [ERROR] /usr/local/mysql5/libexec/mysqld: Error writing file '/usr/local/mysql5_database/sqwl-dev.pid' (Errcode: 28)

111202 10:05:57 [ERROR] Can't start server: can't create PID file: No space left on device

是磁盘空间不足导致的,查看下磁盘空间占用情况

[root@sqwl-dev /]# df -lh

Filesystem Size Used Avail Use% Mounted on

/dev/sda6 2.0G 432M 1.5G 23% /

/dev/sda7 21G 868M 19G 5% /home

/dev/sda5 3.9G 3.8G 0 100% /usr

/dev/sda3 3.9G 119M 3.6G 4% /var

/dev/sda1 99M 12M 82M 13% /boot

tmpfs 1006M 0 1006M 0% /dev/shm

发现/usr下已经没有空间了,我把apache下的access_log和error_log删除了,还有mysql-database下面的sqwl-dev.err也删除了,然后重新启动了linux,mysql正常启动,此时再df一下,usr的可用空间有14M了,也所剩无几了。看来还得找找大的文件

在/usr下用find -size +100000000c的命令查找下大于100M的文件,木有。。。再查下大于30M的文件,一堆,都是我备份的程序文件挤占了不少的地方,把这些备份文件都挪走了后,发现可用空间已经提高到了79%,悔当初真不应该都放在/usr下面啊,仅仅有4G的空间,好窄。。。

在解决这个问题的时候我在社区中还专门发了一个帖子,我觉得nicenight的方法值得一试,他是这样说的 :

1. 如果没有使用独立空间,则需要做导出导入操作进行空间释放

2. sad5空间太小啦,你是自己测试用的库吗?不是的话,建议换到大点的盘上

3. 更换操作有两个选择:

3.1 目录转移,同时mysql配置文件也修改指向新目录

3.2 目录转移,在原位置做一个软链接,这样就不需要更改其它的配置信息

现在先吃饭,吃完饭再来试试软连接的方法

吃完饭,又弄了下linux的定时文件,使得不需要的Log在每月的1号和15号清空

在root/scripts下建立了一个文件delete_log.sh文件,文件内容是

#!/bin/sh

#this file delete apache log and mysql log

rm /usr/local/apache/logs/access_log

rm /usr/local/apache/logs/error_log

touch /usr/local/apache/logs/access_log

touch /usr/local/apache/logs/error_log

查了下第一行中 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。

然后建立一个定时文件

crontab -e

编辑这个文件05 16 * * * /root/scripts/delete_log.sh测试了下,可以通过:)

下面补充下crontab的知识

基本格式 :

*  *  *  *  *  command

分 时  日  月  周  命令

第1列表示分钟1~59 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要运行的命令
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐