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

时间: 2024-10-26 17:14:18

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

删除mysql日志文件

今天发现网站不能正常访问,于是登陆服务器查找问题. 机智的我随手用命令:df -l 发现 硬盘爆满了,于是就知道 问题所在了. Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 20641404 16963004 16929876 100% / tmpfs 960368 0 960368 0% /dev/shm /dev/xvdb1 51599192 4845536 44132564 10% /home/sam/shar

oracle__删除重复记录__三种方法及总结(转载百度文库)

http://wenku.baidu.com/link?url=RIENeGUK4sjxe21_RBYLYHR9tbUUCmOZQRR0mIjldXLYwRAt4khDtLQD9dFyd3rz3s_HWLvG2oErTw8sJUb1R2QLQqSZaBO3xLA8tu2qd9q --方法1:rowid --显示重复的行 select * from persons p1 where rowid<> (select max(rowid) from persons p2 where p1.pid=p

Mysql备份的三种方法

Mysql备份的主要作用是当出现硬件故障.软件故障.自然灾害.黑客攻击.人为误操作时能快速.高效.安全的解决问题,以免造成不必要的损失 Mysql备份时需要备份什么? 1.需要用到的数据 2.二进制日志.InnoDB事务日志 3.存储代码:例如:存储过程.存储函数.触发器.时间调度器 4.服务器的配置文件 Mysql备份时需要注意的要点: 1.能容忍最多丢失多少数据 2.恢复数据需要在多长时间内完成 3.需要恢复那些数据 4.做好备份之后,必须要做还原测试,用于测试备份的可用性 Mysql备份时

SQL Server删除表信息的三种方法

1.使用DELETE实现SQL Server删除表信息 (1)删除表中的全部信息 USE student GO DELETE student      --不加where条件,删除表中的所有记录 go (2)删除表中符合条件的记录 USE student GO DELETE student where Id='001'    --删除表中符合条件的记录 GO 2.使用TRUNCATE删除表中的信息 USE student GO TRUNCATE TABLE    student   --删除表中

MYSQL 删除二进制日志的 3 个方法

方法 1: reset master; ------------------ 删除前: 删除日志: 删除后: ----------------------------------------    可以看出只留下了一个日志文件        ------------------------------------------- 方法 2: purge master logs to 'file_name'; 删除前: 运行删除: 删除后: 第三种:purge master logs to 'yyy

MySQL日志文件

1)错误日志(error log) 错误日志对MySQL的启动.运行.关闭过程进行了记录. 通过show variables like 'log_error'来定位该文件. mysql> show variables like 'log_error'; +---------------+---------------------------------+ | Variable_name | Value | +---------------+----------------------------

Logstash处理json格式日志文件的三种方法

假设日志文件中的每一行记录格式为json的,如: {"Method":"JSAPI.JSTicket","Message":"JSTicket:kgt8ON7yVITDhtdwci0qeZg4L-Dj1O5WF42Nog47n_0aGF4WPJDIF2UA9MeS8GzLe6MPjyp2WlzvsL0nlvkohw","CreateTime":"2015/10/13 9:39:59",&

删除数据库日志文件的方法

原文:删除数据库日志文件的方法 你曾经有在执行SQL的时候,数据库报事务日志已满,然后执行报错.然后纠结于怎么删除数据库日志,捣鼓半天吗,现在就提供两种删除日志文件的方法,希望能够帮到你! 阅读目录 方法一:手工操作 方法二:存储过程代替手工操作 示例存储过程下载 回到顶部 方法一:手工操作   1.数据库->右键->属性->选项-恢复模式->由完成切换成简单   2.数据库->右键->任务->收缩-文件->由完成切换成简单->文件类型->日志-

Linux下自动清除MySQL日志文件

MySQL运行过程中会生成大量的日志文件,占用不少空间,修改my.cnf文件配置bin-log过期时间,在Linux下自动清除MySQL日志文件 [mysqld] expire-logs-days=7 max-binlog-size=268435456