昨天又遇到了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列要运行的命令