【发布时间】:2018-11-09 12:49:10
【问题描述】:
我已经阅读了关于堆栈溢出的所有关于这个主题的问题/答案,但不幸的是,没有人能解决我的问题。
在过去的几天里,mysql 错误“连接太多”不断出现在网站日志上,并且它会为每个客户端挂起整个网站。实际上它会挂起服务器上的所有网站。
所以这是我的问题/评论:
- 大约有 50 个不同的客户端数据库,除了 2 个对所有客户端通用
- pconnect 已经 = 所有连接都为 FALSE
- 在文件“php.ini”上,变量“allowpersistent”为ON。即使我写 pconnect = FALSE,这是否会使 mysql 连接永久化? (我无法更改“allowpersistent”变量,必须询问托管公司)
- 有3个文件加载数据库,一个加载客户端的数据库,另外两个加载所有客户端的公共数据库,它们在每个模型的构造方法上调用,但是CI应该在完成后关闭mysql连接他们并忽略任何已经加载的“加载->数据库”
- "db->close" 显然什么都不做,因为 this->db->database 在我关闭它后保持它的值:P
- 在我写这篇文章时,Threads_connected 高达 1000 并且网站已关闭 :(
- mysql配置有max_connections = 1000,可以再增加吗?我发现可用内存没有变化,那么会发生什么?
- 我应该改为 PDO 吗?我正在使用 dbdriver "mysqli"
- 是否应该要求托管公司降低mysql变量'wait_timeout',以便快速关闭DB连接?
- 我应该更新 CodeIgniter 吗?我有 3.1.4 版本,现在是 3.1.9
非常感谢您的帮助!
【问题讨论】:
-
我认为它终于解决了,但我会在接下来的几个小时内检查并在确认后自己发布答案。托管公司已将 mysql 进程的 wait_timeout 从 8 小时(默认)调整为 3 分钟。
标签: php mysql codeigniter