在对一个网站的例行检查中发现网站打不开了,浏览器显示502 Bad Gateway。我的vps安装的是lnmp,首先用指令lnmp status 检查了一下nginx,php-fpm,mysql的状态,结果发现一切正常。根据经验,我估计是磁盘空间不足,马上使用指令 df -hl 检查磁盘的使用情况:
果然是磁盘空间不足,到底是什么文件这么大,塞满了整个硬盘?我首先想到会不会是nginx的日志文件,结果发现唯一的一个虚拟主机没有启用日志文件:
access_log off;
那很有可能是mysql的日志问题过大。首先来检查一下mysql日志文件的存放位置
mysql -u root -p
登录mysql数据库
执行以下指令
show variables like "slow_query_log_file"; show variables like "log_error"; mysql>show variables like 'log_%' ;
查到有两个日志文件,路径是
/usr/local/mysql/var/sunhan-slow.log
/usr/local/mysql/var/sunhan.err
看来主要的日志文件在/usr/local/mysql/var/这个目录下
执行以下指令来查看文件的大小
ls -alh /usr/local/mysql/var/
结果如下:
每个1.1G,有20个,难怪这么快就把硬盘塞满了。mysql数据库才几百M,为什么日志文件这么大呢?到底有什么用?
主要有两个作用
- 数据恢复
- 主从服务器之间同步数据
如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失。
主服务器上所有的操作都在记录日志中,从服务器可以根据该日志来进行,以确保两个同步。
日志会记录哪些东西呢?基本上所有和数据库有关的操作都有记录在案。比如,update一个表,delete一条记录等。即使没有和该指令相匹配的数据,这条指令也会记录到mysql的操作日志中。另外,每条指令执行的时间,也会被记灵。我这个vps上就放了一个个人博客,根本用不上这些,没有什么实际用途,还不如关掉,以免老是要清除日志。
清除日志的指令是:
reset master;
出错了,原来我为了使网站尽快恢复,已经改了/etc/my.cnf文件,把日志文件关掉了。现在先打开日志
vi /etc/my.cnf
把log-bin=mysql-bin和binlog_format=mixed 前面的#去掉
重启一下mysql,再次登录mysql
mysql -u root -p
输入清除日志的指令
reset master;
问题得到解决
查看一下磁盘占用情况
现在可以编辑/etc/my.cnf,把把log-bin=mysql-bin和binlog_format=mixed注释掉,重启一下mysql,问题就解决了。另外,日志文件也可以直接使用rm指令删除,如果文件比较多,就稍微麻烦点。
写完这篇博客,吓得我赶紧看了下本站的mysql日志。还好,日志文件不大,硬盘还有较大空间。
转载记得给个链接:VPS大玩家 » 解决由于mysql日志文件占用磁盘空间过大引起的Nginx 502 Bad Gateway问题
最新评论
绑定了安全邮箱也无法收到chagpt的邮件。私人邮箱给proton发送邮件到是可以收到
要,这是两件不同的事情
大大,年审完了,还要接着做0报吗?
我用的tunetalk 在大马旅游 可以用到 回国保号 注册了tng和bigpay 等大马电子钱包和visa
Google好像不挑卡吧
可惜了,挺想要这种卡的,还有其他渠道能弄到吗
我的是朋友送给我的,他现在也没有卖这个卡了
网上没找到卖这个卡的,哪里可以下单