由于空间不足导致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列要运行的命令
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列要运行的命令
相关文章推荐
- ubuntu下磁盘空间不足导致mysql无法启动的解决方法
- 二进制安装MySQL5.5.39,磁盘空间不足导致MySQL无法启动
- MySQL因非正常关机的情况下,导致无法正常启动的临时解决办法
- 解决hadoop启动时由于hostname不一致导致DataNode无法正常启动
- linux环境下根目录磁盘空间满导致数据库无法启动的问题的解决
- 删除mysql-bin日志(mysql-bin.00001)导致mysql无法启动的解决方法
- 空间不足后导致无法进入虚拟机的解决办法
- MySQL安装过程启动mysqld_safe中提示的pid ended错误导致无法启动问题处理
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
- 【MySql】权限不足导致的无法连接到数据库以及权限的授予和撤销
- 由于Intel OPA驱动导致安装MLNX_OFED驱动后无法启动服务
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例解决办法
- 由于主机名的问题导致Apache无法启动
- ubuntu14.04,由于安装软件造成磁盘空间不足,无法登入Gnome解决办法!!
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例
- 进入用友通:提示"由于文件不可访问,内存磁盘空间不足无法打开ufsystem数据库"登录失败
- 由于文件夹目录结构导致MyEclipse无法启动问题解决办法
- 解决ubuntu下修改my.cnf设置字符集导致mysql无法启动
- 由于计算机磁盘硬件配置出现问题,导致 Windows 无法启动的解决方法 由于计算机磁盘硬件配置出现问题,导致 Windows 无法启动
- Win7下由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。 解决办法