PHP脚本生成太多MySQL连接

PHP脚本生成太多MySQL连接,php,mysql,connection,Php,Mysql,Connection,我有一个脚本,每5分钟检查几个twitch频道,这样我就可以在我的网站上有一个我想要的当前直播的流列表 问题是,这个脚本生成了很多mysql_连接,我得到了一些关于最大连接限制的错误 据我所知,如果我打开一个到mysql的连接并在我的脚本上运行几个查询,它仍然是一个连接,对吗 我的剧本是这样的: 1连接到数据库 2检查当前时间 3用站点任务更新表的mysql查询,插入当前时间 4对拖缆列表表的mysql查询 5对于每一条记录,它会在twitch上获取一个包含数据的xml,并保存到数据库中(如果它

我有一个脚本,每5分钟检查几个twitch频道,这样我就可以在我的网站上有一个我想要的当前直播的流列表

问题是,这个脚本生成了很多mysql_连接,我得到了一些关于最大连接限制的错误

据我所知,如果我打开一个到mysql的连接并在我的脚本上运行几个查询,它仍然是一个连接,对吗

我的剧本是这样的:

1连接到数据库

2检查当前时间

3用站点任务更新表的mysql查询,插入当前时间

4对拖缆列表表的mysql查询

5对于每一条记录,它会在twitch上获取一个包含数据的xml,并保存到数据库中(如果它在线或不在线)、有多少观众,等等

6.关闭


有人知道为什么会这样吗?起初我认为这是另一个GoDaddy bug,但由于这只发生在我运行此任务时,因此在检查此问题之前,我没有费心与他们交谈。

尝试php.ini中的持久连接, 另外,由于您将使用persistant,并且下一个脚本的实例可能会重用此连接,因此您可能希望避免mysql\u close编辑my.cnf配置文件。在CentOS、RedHat和类似发行版上,这是在/etc/my.cnf;其他发行版将把它存储在其他地方

在[mysqld]部分下添加以下设置:

max_connections = 200
现在,当您下次重新启动MySQL时,它将使用此设置而不是默认设置

200是您指定的数字,它大于现有的数字。因此,假设当前设置为100,您可以设置更高的数字

此外,如果您具有MySQL的root/admin访问权限,那么您可以发送以下命令以增加动态的最大连接,直到服务器重新启动

set global max_connections = 200;
请注意,增加可建立的连接数将增加MySQL运行所需的潜在RAM量。小心增加“最大连接数”设置

使用include_once'connectdb.php';在脚本的顶部。 而connectdb.php应该是您在评论中所写的东西

connectdb.php

$conex_site = mysql_connect(server, user, password); mysql_select_db(database); 
编辑1:

<?php

    $MyConnection = mysql_connect(server, user, password) or die(mysql_error());
    mysql_select_db(database) or die(mysql_error());
    return $MyConnection;//or return true;
}
?>
------------ mysql_connect.php -------------

------------ update_streams.php ------------
<?php
$con=include_once('mysql_connect.php');//or just include once('mysql_connect.php');

如果你能发布一些代码会更好。获取太多连接错误最有可能意味着,你没有足够接近mysql。\u:P每5分钟你是什么意思。?这在纯php中是不可能的。如果你做一个mysql\u连接,你应该做一个mysql\u关闭。在这两者之间,你是对的,它是所有查询的一个连接。因为我有很多页面视图,我有一个脚本,可以检查带有一些任务的表,如果需要,它会运行脚本在twitch上获取流$query=mysql\u queryselect*fromsite\u tasks\u helper$rs=mysql\u fetch\u array$query$streams_last_verified=$rs[streams_last_verified];如果time>strottime+5分钟,$streams\u last\u verified{exec/web/cgi bin/php5-f/var/chroot/home/content/57/8793357/html/lib/update\u streams.php>/dev/null&,$arrOutput;}@Satya如果我理解正确,mysql\u pconnect会在脚本结束时保持连接,是吗?我现在正在使用mysql\u connect。mysql\u connect是与mysql服务器建立连接的正确命令,请确保您没有使用new\u link参数,尽管我认为PHP正在与每个脚本实例创建新连接。如果持久连接不能解决您的问题,那么您可以尝试:mysql\u close$link$link=null;//清除这个变量并强制关闭。我只连接了一次,在脚本的末尾。函数是这样的:函数ConectToDB{$conex_site=mysql_connectserver,user,password;mysql_select_dbdatabase;return$MyConnection;}我刚刚意识到了一些事情。。。Apache是一个多进程web服务器,这意味着他将为每个脚本实例创建另一个工作进程,这当然将创建到DB的另一个连接。尝试使用mysql\u pconnect或mysqli\u connectp:$host。你有机会访问apache配置文件吗?我没有,我正在GoDaddy上使用一个共享帐户。真正奇怪的是,这个脚本每5分钟只运行一次,所以我真的不认为有多少人在使用它。我没有访问my.cnf的权限,因为它是GoDaddy上的共享主机。我很确定这不是限制,最大连接数是1000,最大用户连接数=200@PauloManrique如何管理每5秒调用一次.php程序?使用javascript settimeout?请输入您的代码我每5分钟打一次电话,而不是每5秒。我只是有一个函数检查上次检查它是什么时候,如果超过5分钟,那么它会调用脚本。如何管理每5或x分钟调用一次函数?你的代码在哪里?脚本的这一部分在网站的每一页上运行,因为我有很多访问者。我的mysql\u connect在这个脚本上:您需要一次php conne 操作文件,但每次调用连接的主函数。我不明白你为什么用这种电话。我编辑了我的答案。看看它是否有用