- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我在 GoDaddy (linux) 托管的网站上使用 MySQL 5.0。
我正在对我的网络应用程序进行一些测试,突然我发现页面刷新非常缓慢。最后,经过漫长的等待,我到达了一个页面,上面写着“MySQL 错误,连接太多...”,它指向我连接到数据库的 config.php 文件。
只有我连接到数据库,没有其他用户。在我的每个页面上,我在顶部包含 config.php 文件,并在页面末尾关闭 mysql 连接。中间可能有几个查询。我担心我没有充分关闭 mysql 连接 (mysql_close())。
但是,当我在运行查询后尝试关闭它们时,我在页面上收到连接错误。我的页面是 PHP 和 HTML。当我尝试关闭一个查询时,下一个查询似乎无法连接。我是否必须在关闭后再次包含 config.php 才能连接?
这个错误吓坏了我,因为在 2 周内,大约有 84 人开始使用这个网络应用程序。
谢谢。
编辑:
这是我的页面的一些伪代码:
require_once('../scripts/config.php');
<?php
mysql_query..
if(this button is pressed){
mysql_query...
}
if(this button is pressed){
mysql_query...
}
if(this button is pressed){
mysql_query...
}
?>
some html..
..
..
..
..
<?php
another mysql_query...
?>
some more html..
..
..
<?php mysql_close(); ?>
我想这样,每次打开页面时,都会打开连接,然后在页面加载完成后关闭连接。然后,当有人单击页面上的按钮时,连接会再次打开,依此类推...
编辑:
好的,所以我刚结束与 GoDaddy 的通话。显然,使用我的经济套餐,我一次只能连接 50 个。虽然我今天的问题发生在只有我访问该站点时,但他们说他们早些时候遇到了一些服务器问题。但是,考虑到我的 Web 应用程序将如何拥有 84 个用户,我可能应该升级到“豪华版”,它一次允许 100 个连接。在某一天,一次可能有大约 30 名用户访问我的网站,所以我认为 100 人是一个更安全的赌注。你们同意吗?
最佳答案
共享主机提供商通常允许同一用户同时进行少量连接。
您的代码所做的是:
在页面末尾完成的最后一步不是强制:(引用 mysql_close
的手册):
Using mysql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.
但请注意,您可能无论如何都不应该使用持久连接...
两个提示:
mysql_pconnect
中使用 mysql_connect
(你已经可以了)If a second call is made to mysql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.
The new_link parameter modifies this behavior and makes mysql_connect() always open a new link, even if mysql_connect() was called before with the same parameters.
那么可能导致问题的原因是什么?
也许您正在尝试并行访问多个页面(例如,使用浏览器中的多个选项卡),这将模拟多个用户同时使用该网站?
如果您有许多用户同时使用该站点,并且 mysql_connect
之间的代码和关闭连接需要很长时间,这意味着同时打开了许多连接。 .. 你会达到极限:-(
不过,由于您是该应用程序的唯一用户,考虑到您最多允许同时连接 200 个连接,因此有些奇怪的事情正在发生...
好吧,想想“连接太多”和“max_connections
”...
如果我没记错的话,max_connections
不限制你可以打开到MySQL服务器的连接数,而是连接总数 可以打开到该服务器,任何连接到它的人。
在 Too many connections 上引用 MySQL 的文档:
If you get a Too many connections error when you try to connect to the mysqld server, this means that all available connections are in use by other clients.
The number of connections allowed is controlled by the max_connections system variable. Its default value is 100. If you need to support more connections, you should set a larger value for this variable.
所以,实际上,问题可能不是来自您或您的代码(实际上看起来不错):它可能“只是”是您不是唯一一个试图连接到该代码的人MySQL 服务器(记住,“共享主机”),而且有太多人同时使用它...
...而且 如果我是对的,那就是这样,您无法解决问题:只要该服务器上的数据库/用户太多并且 max_connection
设置为200,你会继续受苦...
作为旁注:在回到 GoDaddy 询问他们之前,如果有人可以验证我刚才所说的话,那就太好了^^
关于php - MySQL 错误 "Too many connections",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1202322/
使用 caret::train() 运行逻辑回归模型时出现问题。LR = caret::train(Satisfaction ~., data= log_train, method = "glm",
我正在尝试将nginx容器作为我所有网站和Web服务的主要入口点。我设法将portainer作为容器运行,并且可以从互联网上访问它。现在,我正在尝试访问由另一个Nginx容器托管的静态网站,但这样做失
我有一个在 Windows XP SP3 x86 上运行的 Visual Studio 2008 C# .NET 3.5 应用程序。在我的应用程序中,我有一个事件处理程序 OnSendTask 可以同
我在 Eclipse 中创建了作为独立程序执行的此类,它可以毫无问题地连接所有 http URL(例如:http://stackoverflow.com),但是当我尝试连接到 https(例如 htt
我在我的 nginx 错误日志中收到大量以下错误: connect() failed (111: Connection refused) while connecting to upstream 我的
我正在尝试将新的 log4j2 与 Socket Appender 一起使用,但我有点不走运。这是我的 XML 配置文件:
我目前正在尝试寻找 Android 应用程序后端的替代方案。目前,我使用 php servlet 来查询 Mysql 数据库。数据库(Mysql)托管在我大学的计算机上,因此我无法更改任何配置,因为我
类MapperExtension有一些方法,before_insert, before_update, ...都有一个参数connection. def before_insert(self, map
嗨,我正在尝试更改位于连接库 (v 5.5) 中的文档的文档所有者,我仍在等待 IBM 的回复,但对我来说可能需要太长时间,这就是我尝试的原因逆向工程。 我尝试使用标准编辑器 POST 请求将编辑器更
我在 nginx( http://52.xx.xx.xx/ )上访问我的 IP 时遇到 502 网关错误,日志只是这样说: 2015/09/18 13:03:37 [error] 32636#0: *
我要实现 Connected-Component Labeling但我不确定我应该以 4-connected 还是 8-connected 的方式来做。我已经阅读了大约 3 种 Material ,但
我在Resources ->JMS ->Connection Factories下有两个连接工厂。 1) 连接工厂 2)集成连接工厂 我想修改两个连接工厂下连接池的最大连接数。资源 ->JMS ->连
我在将 mongoengine 合并到我的 django 应用程序时遇到问题。以下是我收到的错误: Traceback (most recent call last): File "/home/d
上下文 我正在关注 tutorial on writing a TCP server last week in Real World Haskell .一切顺利,我的最终版本可以正常工作,并且能够在
我在访问我的域时遇到了这个问题:我看到了我的默认 http500 错误 django 模板正在显示。 我有 gunicorn 设置: command = '/usr/local/bin/gunicor
我更换了电脑,并重新安装了所有版本:tomcat 8 和 6、netbeans 8、jdk 1.7、hibernate 4.3.4,但是当我运行 Web 应用程序时,出现此错误。过去使用我的旧电脑时,
您好,我是这个项目的新手,我在 CentOS7 ec2 实例上托管它时遇到问题。当我访问我的域时出现此错误: 2017/02/17 05:53:35 [error] 27#27: *20 connec
在开始之前,我已经查看了所有我能找到的类似问题,但没有找到解决我的问题的方法。 我正在运行 2 个 docker 容器,1 个用于 nginx,1 个用于 nodejs api。我正在使用 nginx
使用 debian 包将 kaa -iot 平台配置为单节点时。我收到以下错误。 himanshu@himpc:~/kaa/deb$ sudo dpkg -i kaa-node-0.10.0.deb
我是我公司开发团队的成员,担任管理员角色。我可以通过 https://developer.apple.com/ 访问团队的成员(member)中心 但是,当我尝试在 https://itunescon
我是一名优秀的程序员,十分优秀!