按照我的问题,我想问一下 mysql 如何计数used connections
。是通过浏览器尝试连接到服务器吗?计算机?IP 地址?
昨天,我们客户的服务器收到一条错误消息“无法连接到数据库”。当我们尝试登录 mysql 时,它给出了错误“连接数过多”。我们不得不重新启动 mysqld。这是因为我们添加了一个 cron 作业以在凌晨 2 点运行 PHP 脚本。PHP 脚本的功能是检查表并更新值。函数的开始和结束已正确打开和关闭 DB 连接。
我们希望了解情况,以便制定对策。
答案1
命令行“mysql”在运行时才有效。如果有多个实例正在运行,则每个实例都有效。
SHOW GLOBAL STATUS LIKE 'Max_used_connections';
如果与 相同SHOW VARIABLES LIKE 'max_connections';
,则表明您已达到极限。
Web 服务器会生成线程(或进程)(运行 PHP、Java 等)来处理多个用户。在某些安装中,Web 服务器的限制大于 MySQL 的max_connections
设置。这可能会导致“连接过多”。
我建议降低网络服务器的儿童限制,作为“更好”的设置。
这些信息并不关心连接是“localhost”(套接字)还是 TCP/IP。是的,连接池增加了混乱,而不一定带来任何好处。