1

誰かが私が持っている質問ですぐに助けてくれることを願っています.

私がビルドしたサイトとして、時々エラーが返されます

警告: mysqli::mysqli() [mysqli.mysqli]: (08004/1040): 接続が多すぎます

警告: mysqli::query() [mysqli.query]: mysqli を取得できませんでした

各ページの最後で接続を閉じていなかったので、最初はこれが起こっていると思っていましたが、今ではページ/スクリプトの最初でこのような接続を取得しています

$conn = new mysqli($host, $username, $password, $database);

そして最後の電話で

$conn->close();

また、開いている結果セットをすべて閉じます。

今日サイトにアクセスしてこのエラーが表示された頃のログ ファイルを見ると、12 時頃にアクセスしたところ、最初はページが読み込まれず、その後このエラーが発生しました。その前に、11:30 頃に 1 人が訪れ、次に 10:30 に訪れましたが、交通量はそれほど多くありませんでした。

私が一緒に行ったホストは非常に静かで、彼らと連絡を取る方法がなく、サポートメールを無視して、おそらく彼らがあまり良くないと聞いたので、これは共有設定が悪い問題である可能性があると思いました. mysql サーバー?

これを整理する必要があるので、どんな考えや提案も素晴らしいでしょう!

前もって感謝します!

4

1 に答える 1

4

MySQL サーバーが共有されているアカウントが多すぎるようです。このエラーは、サーバーのmax_connections設定を超えていることを意味します。他にもトラフィックの多い顧客が接続を占有している可能性があります (これは共有 MySQL サーバーですよね?)

リクエストの最後にPHPが自動的にリソースを閉じることはかなり確信しています(とにかく接続などを明示的に閉じることが常に最善ですが)ので、スクリプトが接続を開いたままにしているわけではないと思います。

残念ながら、ホスティングプロバイダーを使い続けるか、プロバイダーの移動を検討する必要があります. また、エラーがいつ発生し、どのくらいの期間、エラーが発生したかを記録しておくようにしてください。これは、問題があることを認めない場合の証拠として必要になります。

また、プロバイダーに次のページを参照することもできます: http://dev.mysql.com/doc/refman/5.1/en/too-many-connections.html

于 2010-03-23T12:05:57.487 に答える