0

5 分ごとに複数の twitch チャンネルをチェックするスクリプトがあるので、ウェブサイトで現在ライブ中のストリームのリストを取得できます。

問題は、このスクリプトが大量の mysql_connections を生成していて、最大接続制限に関するエラーが発生していることです。

私の知る限り、mysql への接続を開き、スクリプトでいくつかのクエリを実行しても、接続は 1 つですよね?

私のスクリプトは次のようになります。

1) データベースに接続する

2) 現在時刻を確認する

3) サイト タスクでテーブルを更新し、現在の時刻を挿入する mysql クエリ

4) ストリーマー リスト テーブルに対する mysql クエリ

5) すべてのレコードについて、twitch でデータと共に xml を取得し、オンラインかどうか、視聴者の数などをデータベースに保存します。

6) mysql_close

なぜこれが起こっているのか誰にも分かりますか?最初は別の GoDaddy バグだと思っていましたが、これはこのタスクを実行しているときにのみ発生するため、これを確認する前に彼らと話をすることはありませんでした.

4

3 に答える 3

1

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');
于 2013-04-27T08:10:43.690 に答える
1

php.ini、http://php.net/manual/en/mysql.configuration.phpでも永続的な接続を試してください。永続 を使用し、次のスクリプトのインスタンスがこの接続を再利用する可能性があるため、mysql_closeを回避したい場合があります

于 2013-04-27T04:44:56.337 に答える
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 に答える