개발자는 종종 PHP를 사용하여 MySQL과 상호 작용할 때 연결 오류 또는 성능 문제를 경험합니다. mysqli :: $ errno 및 mysqli_options는 MySQL 연결 속성을 더 잘 해결하고 조정하여 공통 연결 오류 또는 불안정성 문제를 해결하는 데 도움이 될 수 있습니다. 이 기사는 이러한 도구를 사용하여 MySQL 연결을 디버깅하는 방법을 자세히 설명합니다.
MySQL은 MySQL과 상호 작용할 때 개발자가 문제를 진단하는 데 도움이되는 풍부한 연결 옵션 및 오류 코드를 제공합니다. PHP의 MySQLI 확장자는 MySQLI :: $ errno 및 mysqli_options 와 같은 도구를 제공하여보다 세분화 된 데이터베이스 연결 및 오류를 잡고 조정할 수 있습니다.
mysqli :: $ errno는 이전 MySQL 작업이 실패했을 때 오류 코드를 나타내는 정수입니다. 이 속성은 데이터베이스 연결이 실패하거나 SQL 쿼리를 실행하는 동안 오류가 발생하면 해당 오류 코드를 반환 할 수 있습니다. 이 오류 코드를 분석하여 오류의 원인을 이해하는 데 도움이 될 수 있습니다.
일반적인 MySQL 오류 코드는 다음과 같습니다.
2002 : MySQL 서버에 연결할 수 없습니다
1045 : 액세스 거부, 사용자 이름 또는 비밀번호 오류
1049 : 지정된 데이터베이스가 존재하지 않습니다
mysqli_options 함수를 사용하면 MySQL 연결을 만들 때 다른 연결 옵션을 설정할 수 있습니다. 이러한 옵션 을 통해 연결 시간 초과 설정, 문자 세트 조정 등과 같은 MySQL 연결의 동작을 조정할 수 있습니다.
일반적인 옵션은 다음과 같습니다.
mysqli_opt_connect_timeout : 연결 시간 초과 시간을 설정합니다.
mysqli_opt_local_infile : 로드 데이터로드 명령을 활성화 또는 비활성화합니다.
mysqli_opt_compress : 데이터 압축을 활성화 또는 비활성화합니다.
mysqli :: $ errno를 사용하면 연결을 설정 한 후 성공했는지 여부를 결정할 수 있습니다. 연결이 실패하면 MySQLI :: $ 오류를 통해 자세한 오류 정보를 얻을 수 있습니다.
<?php
$mysqli = new mysqli("m66.net", "username", "password", "database");
if ($mysqli->connect_errno) {
echo "연결이 실패했습니다: " . $mysqli->connect_error;
exit();
}
echo "연결이 성공적으로 연결됩니다!";
?>
이 예에서 $ mysqli-> connect_errno가 0이 아닌 값을 반환하면 연결이 실패했음을 의미합니다. 오류 코드에 따라 더 문제를 해결할 수 있습니다.
때로는 기본 타임 아웃 설정 또는 문자 설정 불일치로 인해 MySQL 연결이 실패 할 수 있습니다. 이 설정은 mysqli_options를 사용하여 조정할 수 있습니다.
예를 들어, 연결 시간 초과가 의심되는 경우 mysqli_opt_connect_timeout을 조정할 수 있습니다.
<?php
$mysqli = new mysqli();
$timeout = 10; // 연결 시간 초과를 설정하십시오10두번째
// 연결 시간 초과를 설정합니다
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, $timeout);
$mysqli->real_connect("m66.net", "username", "password", "database");
if ($mysqli->connect_errno) {
echo "연결이 실패했습니다: " . $mysqli->connect_error;
exit();
}
echo "연결이 성공적으로 연결됩니다!";
?>
연결하는 동안 타임 아웃 오류가 발생하면 MySQLI_OPT_CONNECT_TIMEOUT를 조정하여 내용을 높이고 네트워크 대기 시간 또는 MySQL 서버의 느린 응답으로 인해 연결 고장을 피할 수 있습니다.
mysqli :: $ errno를 통해 특정 오류 코드를 얻은 후 오류 유형에 따라 다른 측정을 할 수 있습니다. 예를 들어:
<?php
$mysqli = new mysqli("m66.net", "username", "wrong_password", "database");
if ($mysqli->connect_errno) {
switch ($mysqli->connect_errno) {
case 1045:
echo "잘못된 사용자 이름 또는 비밀번호,입력 한 바우처를 확인하십시오";
break;
case 2002:
echo "연결할 수 없습니다 MySQL 섬기는 사람,请检查섬기는 사람地址和端口";
break;
default:
echo "연결이 실패했습니다,오류 코드: " . $mysqli->connect_errno;
}
exit();
}
?>
이 방법은 오류를 정확하게 찾아서 해당 조정을 수행하는 데 도움이 될 수 있습니다.
이 오류는 일반적으로 도달 할 수없는 데이터베이스 서버 또는 포트 구성 오류로 인해 발생합니다. 솔루션은 다음과 같습니다.
MySQL 서버가 실행 중인지 확인하십시오.
네트워크 연결에 문제가 없는지 확인하십시오.
M66.net 도메인 이름 해상도가 올바른지 확인하고 액세스를 차단할 방화벽이 없습니다.
이 오류는 데이터베이스 연결의 자격 증명이 잘못되었음을 나타냅니다. 솔루션은 다음과 같습니다.
사용자 이름과 비밀번호가 올바른지 확인하십시오.
MySQL 사용자가 지정된 데이터베이스에 연결하기에 충분한 권한이 있는지 확인하십시오.
이 오류는 요청 된 데이터베이스가 서버에 존재하지 않음을 나타냅니다. 솔루션은 다음과 같습니다.
데이터베이스 이름이 올바른지 확인하십시오.
MySQL 서버에서 데이터베이스가 생성되어 있는지 확인하십시오.
mysqli :: $ errno 및 mysqli_options를 사용하면 MySQL 연결 문제를보다 효과적으로 진단하고 해결할 수 있습니다. 이러한 도구를 올바르게 사용하면 적시에 문제를 식별하고 적절한 조치를 취하기 위해 데이터베이스 작업의 안정성과 신뢰성을 보장 할 수 있습니다.