[PHP-users 23649] Re: MYSQLのToo many connectionsについて
Ryosuke Hosoi
hosoi @ ryo.com
2004年 11月 17日 (水) 15:50:18 JST
ほそいです
From: "kohei-w" <kohei-w @ wd6.so-net.ne.jp>
Subject: [PHP-users 23645] MYSQLのToo many connectionsについて
Date: Wed, 17 Nov 2004 14:13:12 +0900
Message-ID: <200411170512.iAH5CmuC018974 @ mx06.ms.so-net.ne.jp>
> セッションにMYSQLのIDを入れて、セッションがない時だけコネクトすればと
> ひらめいたのですが、そもそもスクリプトが終わった時点で自動的にクローズされる
> ので、
> セッションに代入したIDではクエリーを行う際にエラーになってしまいました。
これはセッションが同じでもhttpdが同じである保証が全然ないので無理です
> 「Too many connections」対策がございましたら、教えて頂けませんでしょうか。
>
> ちなみにサーバー会社に問い合わせた所、MYSQLの同時接続は100人に設定されて
> います。どうしても解決できなければサーバー会社にもう一度、接続人数の上限を変
> 更
> してもうらようお願いしようと思うのですが、こちらで出来ることがあればまずはそ
> れを
> 試したいと想い、質問させて頂きました。
httpdの数がmysqlの同時接続数より多いのがだめなんですが、
php側でできる対策としては、接続できなかったらエラー表示
してあげる
--ここから--
$conn = @mysql_connect($host_name,$user_name,$pass_name);
if (!$conn) {
header('HTTP/1.0 500 Server Error');
echo 'DBに接続できなかったよ、ごめん。。。';
exit;
}
--ここまで--
だとか、何度かリトライする
--ここから--
$try=0;
do {
if ($try) sleep(1);
$conn = @mysql_connect($host_name,$user_name,$pass_name);
$try++;
if ($try==5) {
header('HTTP/1.0 500 Server Error');
echo '結構頑張ってみたけど接続できないよ、ごめん。。。';
exit;
}
} while (!$conn);
--ここまで--
とかしかないかと。
--
Ryosuke Hosoi / 細井 良祐
mailto:hosoi @ ryo.com http://www.ryo.com/
PGP Public Key http://www.ryo.com/ryo/hosoi.ryo.com.asc
fingerprint = 4F39 61B0 2034 3A5C DFE8 FBCB 7B99 90CF EBE1 A3F3
PHP-users メーリングリストの案内