我正在将MySQL和PHP与2个应用程序服务器和1个数据库服务器一起使用.
随着用户数量的增加(到现在大约有1000个),出现以下错误:
SQLSTATE[08004] [1040] Too many connections
在my.cnf中将参数max_connections设置为1000,在php.ini中将mysql.max_persistent设置为-1.
由于MaxClients apache参数等于750,因此一次最多可运行1500个apache进程,并且我们有2个应用程序服务器.
>是否应将here的max_connections提升到1500?
>还是应该将mysql.max_persistent设置为750(出于性能原因,我们将PDO与持久连接一起使用,因为数据库服务器与应用程序服务器不同)?
>还是应该尝试其他方法?
提前致谢!
解决方法:
我认为您的连接关闭速度不够快,并且它们会一直堆叠,直到达到默认时间为止.我遇到了同样的问题,并且使用wait_timeout解决了问题.
您可以尝试在my.cnf中进行设置
set-variable = max_connections=1000 // max connection
set-variable = max_user_connections=100 // max user connection per hour
wait_timeout = 60 // wait timeout for connection in seconds
因为将在60秒后终止所有现有连接
标签:mysql,php,mysql-error-1040
来源: https://codeday.me/bug/20191106/1999794.html