ホームページ > バックエンド開発 > PHPチュートリアル > PHP が MySQL のデッド接続を処理する方法

PHP が MySQL のデッド接続を処理する方法

*文
リリース: 2023-03-18 22:00:01
オリジナル
1484 人が閲覧しました

この記事では、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がどのように解決するか

MySqlの超長い自動切り捨ての例を詳しく解説

以上がPHP が MySQL のデッド接続を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート