ホームページ >データベース >mysql チュートリアル >データベースを安全かつ効率的にメンテナンスするために、MySQL クエリの実行を cron ジョブとして自動化するにはどうすればよいですか?
MySQL クエリを Cron ジョブとして実行: 安全で自動化されたアプローチ
スケジュールされたタスクは、データベースの保守に不可欠な場合があります。このようなタスクの 1 つは、MySQL データベースから古いエントリを削除することです。ただし、毎晩手動でクエリを実行し、毎回パスワードを入力する必要があるのは面倒な場合があります。この記事では、MySQL クエリの実行を cron ジョブとして自動化するための、よりシンプルで安全な方法について詳しく説明します。
MySQL イベント スケジューラの使用 (推奨方法)
推奨されるアプローチは、 MySQL の組み込みイベント スケジューラにより、外部スクリプトが不要になります。これを有効にするには:
SET GLOBAL event_scheduler = ON;
次に、スケジュールに基づいて目的のクエリを実行するイベントを作成します:
CREATE EVENT name_of_event ON SCHEDULE EVERY 1 DAY STARTS '2014-01-18 00:00:00' DO DELETE FROM tbl_message WHERE DATEDIFF( NOW( ) , timestamp ) >=7;
Cron を使用した PHP ファイルの実行 (代替方法)
イベント スケジューラがオプションでない場合は、cron で PHP を実行することもできます。 ファイル。この方法では、必要な認証情報が埋め込まれた PHP スクリプトが必要です。不正なアクセスからスクリプトを保護してください。以下に例を示します:
<?php $servername = "localhost"; $username = "root"; $password = "mypassword"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // Execute query $sql = "DELETE FROM tbl_message WHERE DATEDIFF( NOW( ) , timestamp ) >=7"; $conn->query($sql); // Close connection $conn->close(); ?>
最後に、PHP スクリプトをタスクとして実行するように cron を設定します。 cron がスクリプトを実行できるように、適切な権限を忘れずに設定してください。
以上がデータベースを安全かつ効率的にメンテナンスするために、MySQL クエリの実行を cron ジョブとして自動化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。