lnmp vps服务器删除mysql日志文件三种方法

我在上一篇文章介绍了著名的LNMP主机一键安装工具,对比了军哥lnmp和AMH主机的差别,由于AMH拥有用户后台界面,易于新手操作,值得推荐。

但是,上周末我网站宕机,收到DNSPOD发来了宕机提醒,不得不半夜爬起来处理VPS问题,最终查明原因是AMH运行产生了大量的mysql数据库二进制文件,25GB的VPS硬盘几乎占满,导致网站不稳定,出现502宕机错误。

AMH作者给出了解决办法,我不喜欢,其实后台修改配置就好了。考虑到所有lnmp vps用户的方便,我把所有解决办法都列出来给各位参考:技术分享

AMH后台面板关闭mysql日志

技术分享

这个办法最简单,登录amh主机后台面板,点击顶部菜单栏MYSQL--参数配置--是否开启mysql二进制日志,输入Off,保存,搞定。

cron任务定时删除日志

这是amh作者给出的方案,我非常不满意,没有考虑vps配置环境,如果你直接拿来用,肯定出问题。

在/home下新建一个dellog.sh
内容为

  1. #!/bin/bash
  2. cd /
  3. rm /home/usrdata/mysql*/mysql-bin* -f #删除MySQL日志
  4. rm /home/wwwroot/*/logs/*.log -f #删除网站日志
  5. amh nginx restart #Nginx重启
  6. amh mysql restart #MySQL重启

然后执行命令

  1. chmod 755 /home/dellog.sh

最后执行命令

  1. crontab -l

添加内容

  1. 0 4 1 * * /home/dellog.sh

然后系统就会每个月的1号凌晨4点自动删除所有的日志文件

说明:

1 MySQL日志文件位置要自己修改,例如我用的是CentOS VPS,安装amh后,文件位置是在 /usr/local/mysql/data/

2 rm /home/wwwroot/*/logs/*.log -f #删除网站日志 这句话也不对,网站默认目录其实是/home/wwwroot/*/log/

3 cron任务,amh作者给出的是每月删除一次,根据我网站的情况,差不多两天时间,日志就占满整个VPS硬盘了,建议修改成每天凌晨4点删掉一次日志,即 0 4 * * * /home/dellog.sh

提醒你,花几分钟时间学习一下crontab时间参数设置,上面共有五个字段,分别是分、时、号、月、星期:

技术分享

修改mysql配置文件

这是最彻底、最通用的办法,永久关闭mysql日志文件输出(参考来源)。

1、删除mysql二进制日志

  1. # mysql -uroot -ppassword -e"reset master;"

2、关闭二进制日志

  1. vi /etc/my.cnf

注释如下代码:

  1. log-bin=mysql-bin
  2. binlog_format=mixed

3、重启mysql服务器

     service mysqld restart

VPS推荐

采用SSD固态硬盘的digitalocean(注册就送10美元)
 
老牌日本机房的Linode
 
超高性价比的Vultr

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。