Ubuntu磁盘使用率100%造成MySQL服务无法继续运行

问题发成场景:服务器端向MySQL插入一条数据,报错,提示the table XXX is full。

1、根据提示以为该表设置了存储上限,查看该表的存储上限tmp_table_size 和 max_heap_table_size ,发现并没有超出限制。

2、重启Mysql服务,service mysql restart,发现MySQL服务无法启动.

3、使用service mysql status查看当前MySQL服务状态,提示mysql.service failed because the control process exited with error code;mysql.service:main process exit,code=exited,status=1/failure。

4、根据网上一哥们的建议,有可能是硬盘满了,使用df -h 查看硬盘存储情况,发现/dev/vda1 的使用情况已经是100%了。

5、思考了一波,有可能是日志文件存储太多造成的,去往MySQL日志路径,发现没有很大。

6、去往Tomcat日志目录logs,发现日志存放太多了,问题源就在这里,这里使用到一个命令:du --max-depth=1 ,作用就是查询当前目录下一级目录的文件大小


7、清空catalina.out文件,命令:cat /dev/null >catalina.out

8、当然这样还是不能彻底解决问题,我们可以写一个shell脚本让他定期每天/每周执行,帮助我们删除比如说一周前的日志文件,或者将日志文件备份到其他地方

#!/bin/bash
logs_paths[0]="/root/workspace/tomcat/logs"
for logs_path  in ${logs_paths[@]};
do

        find $logs_path -mtime +7 -name "localhost_access_log.*.txt" -exec rm -rf {} \;
        find $logs_path -mtime +7 -name "catalina.*.log" -exec rm -rf {} \;
        find $logs_path -mtime +7 -name "manager.*.log" -exec rm -rf {} \;
        find $logs_path -mtime +7 -name "host-manager.*.log" -exec rm -rf {} \;
        find $logs_path -mtime +7 -name "fileservice.log.*" -exec rm -rf {} \;
        find $logs_path -mtime +7 -name "localhost.*.log" -exec rm -rf {} \;
     #备份日志
        cp   $logs_path/catalina.out  $logs_path/catalina.`date +%Y-%m-%d`.log 
        #清空日志  
      cat /dev/null > $logs_path/catalina.out 
    echo $logs_path
done
9、清理之后,启动MySQL服务,成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值