현재 위치: > 최신 기사 목록> 데이터베이스 모니터링 경보 시스템의 일부로 $ errno 사용

데이터베이스 모니터링 경보 시스템의 일부로 $ errno 사용

M66 2025-05-28

데이터베이스 상호 작용과 관련된 PHP 애플리케이션을 개발할 때는 데이터베이스 작동 오류의 캡처 및 처리가 중요합니다. 오류가 발생하면 시스템이 신속하게 응답하고 경보를 발행 할 수 있도록 MySQLI :: $ errno 함수를 사용하여 오류 모니터링 및 경보 구성을 수행 할 수 있습니다. 이 기사는이 기능을 데이터베이스 모니터링 경보 시스템에 통합하는 방법을 자세히 설명합니다.

1. mysqli :: $ errno 함수 소개

mysqli :: $ errnoMySQLI 클래스의 속성으로, 가장 최근의 MySQL 작업의 오류 코드를 나타냅니다. 데이터베이스 작업을 수행 할 때 오류가 발생하면 속성에 특정 오류 번호가 포함됩니다. 이 오류 번호에 따라 추가 오류 처리 또는 알람을 수행 할 수 있습니다.

 $mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    echo "연결 오류 (" . $mysqli->connect_errno . "): " . $mysqli->connect_error;
}

위의 예에서 MySQLI를 연결하는 동안 오류가 발생하면 $ mysqli-> connect_errno는 오류 코드를 반환하여 알람 메커니즘을 기반으로 트리거 할 수 있습니다.

2. 데이터베이스 모니터링 경보 시스템을 구성하십시오

데이터베이스 작업 중에 적시에 모니터링하고 경고하기 위해 MySQLI :: $ errno를 결합 하여이 요구 사항을 달성 할 수 있습니다. 구체적으로, 다음 단계를 사용할 수 있습니다.

2.1 오류 데이터베이스 작업을 듣습니다

데이터베이스와 상호 작용할 때마다 MySQLI :: $ errno를 확인하여 오류가 발생했는지 확인해야합니다. 예를 들어, 쿼리를 실행하거나 데이터를 삽입 할 때 오류가 발생하면 오류 메시지를 녹화하고 알람을 트리거 할 수 있습니다.

 $query = "SELECT * FROM users";
$result = $mysqli->query($query);

if ($mysqli->errno) {
    // 오류가 발생한 경우,기록 오류 정보를 기록합니다
    error_log("MySQL 오류 코드: " . $mysqli->errno . " 오류 메시지: " . $mysqli->error);
    
    // 트리거 알람
    sendAlert($mysqli->errno, $mysqli->error);
}

2.2 알람 알림을 보내십시오

데이터베이스 오류가 감지되면 Sendalert 함수를 통해 알람을 전송할 수 있습니다. 이 기능은 이메일, 문자 메시지 또는 기타 수단으로 관리자에게 알릴 수 있습니다. 여기서는 이메일을 사용하여 알람을 보냅니다.

 function sendAlert($errno, $error_message) {
    $to = "admin@m66.net"; // 관리자 이메일
    $subject = "데이터베이스 오류 알람";
    $message = "데이터베이스 오류가 발생했습니다,오류 코드: $errno,오류 메시지: $error_message";
    
    // 이메일을 보내십시오
    mail($to, $subject, $message);
}

2.3 경보 임계 값을 설정하십시오

때로는 연결 시간 초과 등과 같은 시스템의 정상 작동으로 인해 데이터베이스 오류가 일시적인 문제가 될 수 있습니다. 빈번한 경보를 피하기 위해 알람 임계 값을 설정할 수 있습니다. 이는 오류 수가 특정 한계를 초과하는 경우에만 경보를 유발할 수 있습니다.

 // 기록 된 오류 수
$alertThreshold = 5;
$errorCount = 0;

// 假设오류가 발생한 경우会执行下面的代码
if ($mysqli->errno) {
    $errorCount++;
    
    // 오류 수가 임계 값을 초과하는 경우,알람을 보내십시오
    if ($errorCount >= $alertThreshold) {
        sendAlert($mysqli->errno, $mysqli->error);
        $errorCount = 0;  // 오류 수를 재설정합니다
    }
}

2.4 다른 유형의 오류 처리

다른 유형의 데이터베이스 오류마다 다른 취급 방법이 필요할 수 있습니다. 예를 들어, 연결 오류 및 쿼리 오류마다 경보 정책이 다를 수 있습니다. 오류 코드를 기반으로 오류 유형을 구별하고 다른 측정을 할 수 있습니다.

 if ($mysqli->errno) {
    switch ($mysqli->errno) {
        case 1045: // 권한 오류
            sendAlert($mysqli->errno, "권한 오류: " . $mysqli->error);
            break;
        case 2002: // 연결 오류
            sendAlert($mysqli->errno, "연결이 실패했습니다: " . $mysqli->error);
            break;
        default:
            sendAlert($mysqli->errno, "알 수없는 오류: " . $mysqli->error);
    }
}

3. 코드 예제 완료

다음은 mysqli :: $ errno를 사용하여 데이터베이스 모니터링 알람을 구현하는 방법을 보여주는 완전한 코드 예제의 단순화 된 버전입니다.