我在上一篇文章介绍了著名的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
内容为
- #!/bin/bash
- cd /
- rm /home/usrdata/mysql*/mysql-bin* -f #删除MySQL日志
- rm /home/wwwroot/*/logs/*.log -f #删除网站日志
- amh nginx restart #Nginx重启
- amh mysql restart #MySQL重启
然后执行命令
- chmod 755 /home/dellog.sh
最后执行命令
- crontab -l
添加内容
- 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二进制日志
- # mysql -uroot -ppassword -e"reset master;"
2、关闭二进制日志
- vi /etc/my.cnf
注释如下代码:
- log-bin=mysql-bin
- binlog_format=mixed
3、重启mysql服务器
service mysqld restart
VPS推荐
采用SSD固态硬盘的digitalocean(注册就送10美元)
老牌日本机房的Linode
超高性价比的Vultr