1

ロングポーリングでリアルタイムチャットを作成しました。これは次のように動作します:リアルタイムチャット中のmax_user_connectionエラー

はまず、ユーザは、サーバに要求を送信します。サーバーは要求を受け取り、新しいメッセージを待ちます。

新しいメッセージが来た場合、それは(リクエストが閉じていれば、ブラウザはそれを再送信します)ユーザーのブラウザにメッセージをプッシュします。サーバーが3分以上待機した場合、要求は取り消され、新しい要求が送信されます。

サーバーでは、私はPHPを使用しました。 PHPでは、600ミリ秒ごとにメッセージ数をチェックするだけです。以前の数より大きい場合、サーバーは新しいメッセージを取得し、応答としてブラウザーに送信します。

問題は、私は、データベース内のすべてのSQLチェックの後mysqliの接続を閉じていても、私はmax_user_connectionエラーを取得するということです。

私は近いmysqliのがない場合、エラーがより頻繁に起こります。

どうすればこの問題を解決できますか? MySQLサーバへ

答えて

0

ログを(今の私のホストはHostgatorのと計画が共有されている)と、このコマンドを実行すると、あなたはどのように多くの最大接続数を設定している見つけますか?

mysql>show variables like "max_connections"; 
+-----------------+-------+ 
| Variable_name | Value | 
+-----------------+-------+ 
| max_connections | 100 | 
+-----------------+-------+ 

この時点で要求している接続数より少ない場合は、接続数を更新してください。

mysql>set global max_connections = 200; 

これは問題を解決するはずです。 max_connectionsが動的であることを忘れないでください。mysqlサーバを停止したり再起動したりする必要はありません。接続数を直接更新できます。 max_connectionの制限が存在するのはなぜ

+1

は?ホストは、それは危険な増加max_connectionのllimitではないのですか?それを行うのはなぜ?それの利点は何ですか? – Alex

+0

いいえ、その危険ではなく、mysqlにはデフォルトの制限がありますが、いつでも動的に増やすことができます。この操作では何もロックされません。しかし、あまり大きくしないでください。このスレッドは、http://dba.stackexchange.com/questions/23498/what-should-i-set-max-connections-to-for-mysql – Jordon

+1

の情報をお寄せいただきありがとうございます。これは残念なことに有用でしたが、私はそれを増やすことはできませんあまりにも多くの場合、私はajax long pollの問題点を知りたいのですが、単純なAjaxポーリングを行うと完璧に機能しますが、長いポーリングでは帯域幅がかなり大きくなります。 – Alex

関連する問題