안전하고 효율적인 데이터베이스 유지 관리를 위해 MySQL 쿼리 실행을 cron 작업으로 자동화하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-11-22 09:19:11
원래의
701명이 탐색했습니다.

How can I automate MySQL query execution as cron jobs for secure and efficient database maintenance?

Cron 작업으로 MySQL 쿼리 실행: 안전하고 자동화된 접근 방식

예약된 작업은 데이터베이스를 유지하는 데 필수적일 수 있습니다. 그러한 작업 중 하나는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿