0

我有一个脚本,每 5 分钟检查几个抽搐频道,所以我可以在我的网站上列出我想要的当前直播的流。

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

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

我的脚本是这样的:

1)连接数据库

2)查看当前时间

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

4) 对流媒体列表表的mysql查询

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

6) mysql_close

有谁知道为什么会这样?起初我以为这是另一个 GoDaddy 错误,但由于这仅在我运行此任务时发生,因此在检查之前我没有费心与他们交谈。

4

3 回答 3

1

在 php.ini、http ://php.net/manual/en/mysql.configuration.php 中尝试持久连接, 因为您将使用持久连接,并且下一个脚本的实例可能会重用此连接,您可能希望避免使用 mysql_close

于 2013-04-27T04:44:56.337 回答
1

include_once ('connectdb.php');在脚本顶部使用。并且connectdb.php应该像您在评论中所写的那样。

连接数据库.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');
于 2013-04-27T08:10:43.690 回答
0

编辑my.cnf配置文件。在 CentOS、RedHat 和类似的发行版上,这是在/etc/my.cnf;其他发行版会将其存储在其他地方。

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

max_connections = 200

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

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

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

set global max_connections = 200;

请注意,增加可以建立的连接数将增加 MySQL 运行所需的潜在 RAM 量。谨慎增加 max_connections 设置!

于 2013-04-27T06:01:58.487 回答