我有一个网络应用程序,有时我会开始收到 PHP 错误故障(“无法连接到 MySQL 服务器”),一段时间后它就会得到解决。
my.cnf 中设置的 MaxConnection 为 750
是否有任何日志或方法可以了解 MySQL 服务器为何关闭(或者是否达到连接限制)?
任何帮助都值得感激,谢谢!
更新
阅读完下面华纳的回答后,检查了 my.cnf 文件并尝试找到错误日志,但它不存在。
[mysqld]
set-variable=local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
max_connections=700
[mysql.server]
user=mysql
basedir=/var/lib
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
我可以将 log-error=/var/log/mysqld.log 添加到 [mysqld] 组吗?
谢谢。
答案1
日志文件的位置通过两种方法指定。第一种方法是在运行时使用--log-error=filename
,这通常会在您的 init 文件中指定。更常见的是,它会在您的 my.cnf 中使用 指定log-error
。最后,如果未设置,它将默认为您的 的数据目录hostname.err
。
在文件系统中搜索扩展名为 .err 的文件。很有可能,您会找到该日志。
find / -name '*.err'
locate .err | egrep '.err$'
当 MySQL 达到连接限制时,您的应用程序将记录日志。否则,您需要查看进程列表。您可以通过show full processlist;
在 MySQL 客户端中运行来执行此操作。行数将反映当前的连接数量。