この記事では、PHP で MySQL のデッドリンクをクリアする方法を主に紹介します。PHP スクリプトを定期的に実行することで、MySQL のデッドリンクのチェックとクリア機能を実装します。お役に立てれば幸いです。
接続状況の主な症状は、スリープ接続が多すぎて時間が非常に長く、利用可能なすべての接続を占有しているため、他のユーザーがデータベースに接続できなくなっていることです。 MySQL データベースのパラメータを調整することを検討し始めましたが、多くのパラメータを変更しましたが、それでも問題は解決できませんでした。そこで私は、php スクリプトを作成し、2 分ごとにそれを実行するというより無慈悲な方法を考えました。これにより、一部のプログラムはデータベース サーバーを強制終了しなくなります。以下は、切断された接続のための Kill Small プログラムです:
kill-mysql-sleep-proc.php:
define('MAX_SLEEP_TIME',120); $hostname="localhost"; $username="root"; $password="password"; $connect=mysql_connect($hostname,$username,$password); $result=mysql_query("SHOWPROCESSLIST",$connect); while($proc=mysql_fetch_assoc($result)){ if($proc["Command"]=="Sleep"&&$proc["Time"]>MAX_SLEEP_TIME){ @mysql_query("KILL".$proc["Id"],$connect); } } mysql_close($connect); ?>
その中の $password を実際のデータベースのパスワードに変更すると、切断された接続の時間も変更できます。次に、スケジュールされたタスクを追加するだけです。たとえば、crontab-e コマンドを使用して以下を追加します:
*/2****php/usr/local/sbin/kill-mysql-sleep-proc.php
データベース内の無効な接続を 2 分ごとにチェックしてクリアします
関連推奨事項:
php で mysql データ ディクショナリを生成する方法
MySQLに保存されたデータの中国語文字化け問題をPHPがどのように解決するか
以上がPHP が MySQL のデッド接続を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。