今天登录网站后台提示 nginx 502 错误和无法连接数据库错误。这两个错误交替出现,真是急死个人。
在网上搜了一圈,无法连接数据库错误是 wp_options 数据库需要修复,可服务器上的 phpmyadmin 又无法打开。重启服务器也无济于事。 nginx,php,mysql 运行状态正常。这个服务器已经运行一年左右了,安装 lnmp 环境时该做的优化都做了,像 max_connection 之类的设置也做过了。
用命令行登录 mysql 发现不能登录,刚开始提示 too many connections,重启服务器之后又提示 cannot connect to localhost server,找不到/tmp/mysql.sock
用 find 命令查了一下,服务器上根本没有/tmp/mysql.sock 这个文件。
后来找到一篇文章上说,有可能是磁盘满了,看下 mysql 目录下的 mysql-bin 文件确实很多,删除之后,重启 mysql,服务器恢复正常了。
mysql-bin0000**是 mysql 日志文件,存放于 usr/local/mysql/var 下边,其实这个日志文件不常用,所以,为了方便,可以禁用 mysql 日志。
如何关闭 MySQL 的日志功能:
删除日志:
执行:
/usr/local/mysql/bin/mysql -u root -p
输入数据库 root 用户的密码登录后再执行:reset master;
再输入:quit ; 退出 mysql 命令模式。
彻底禁用 MySQL 日志:修改/etc/my.cnf 文件,找到
log-bin=mysql-bin
binlog_format=mixed
再这两行前面加上 #,将其注释掉,再执行 /etc/init.d/mysql restart 即可。
如果实在想保留日志,可以在 /etc/my.cnf 里加入 expire_logs_days = 10 然后重启 mysql,这样 10 天就会自动清理日志。
本文以 LNMP 一件安装包安装的环境为例除 MySQL 重启命令和配置文件路径可能略有不同,其他一样。
PS:貌似 php5.2 跟新版本的 WordPress 有点小冲突,php5.2 环境下的新版 WordPress 登录后台之后容易出现 502 错误。安装 lnmp 环境时务必选 php5.3 以上版本的 php 。
写于 2015 年 7 月 28 日