데이터베이스 작업에 PHP를 사용할 때 Get_connection_Stats는 개발자가 쿼리 실행, 총 연결 수 및 기타 정보를 포함하여 현재 데이터베이스 연결 상태를 이해하는 데 도움이되는 매우 유용한 기능입니다. 그러나 경우에 따라 get_connection_stats가 데이터를 얻을 수없는 상황을 만날 수 있으며 문제를 해결하고 해결해야합니다.
이 기사는 GET_CONNECTION_STATS가 데이터를 얻을 수없는 경우 가능한 이유와 효과적인 솔루션을 탐색합니다.
get_connection_stats를 사용하기 전에 데이터베이스에 대한 연결이 정상인지 확인해야합니다. 유효하지 않거나 연결이 끊어지면 기능이 연결 통계를 올바르게 가져 오지 못할 수 있습니다.
해결책:
데이터베이스 연결이 성공했는지 확인하고 get_connection_stats를 호출하기 전에 MySQLI_CONNECT 또는 PDO를 통해 데이터베이스 연결이 성공적으로 설정되었는지 확인하십시오.
mysqli_ping () 또는 pdo :: getAttribute (pdo :: att_connection_status)를 사용하여 데이터베이스 연결이 활성화되어 있는지 확인하십시오.
<span><span><span class="hljs-comment">// 조사하다 MySQLi 연결하다</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$connection</span></span><span>) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"연결하다失败: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">mysqli_connect_error</span></span><span>());
}
</span></span>
get_connection_stats는 데이터베이스 서버에서 제공하는 연결 통계에 따라 다릅니다. 서버 자체가 관련 통계를 제공하지 못하거나 통계가 활성화되지 않으면 얻은 데이터가 비어있을 수 있습니다.
해결책:
MySQL 버전을 확인하여 현재 데이터베이스 버전이 연결 통계를 지원하는지 확인하십시오. 일부 오래된 MySQL 버전에는이 기능이 없을 수 있습니다.
Performance_Schema 가 활성화되지 않은 경우 일부 MySQL 버전은 자세한 연결 통계를 제공 할 수 없으므로 Performance_Schema가 데이터베이스 구성을 통해 활성화되어 있는지 확인하십시오.
<span><span><span class="hljs-comment">-- 조사하다 performance_schema 활성화 여부</span></span><span>
</span><span><span class="hljs-keyword">SHOW</span></span><span> VARIABLES </span><span><span class="hljs-keyword">LIKE</span></span><span> </span><span><span class="hljs-string">'performance_schema'</span></span><span>;
</span></span>
때로는 권한이 충분하지 않으면 연결 통계를 사용할 수 없습니다. PHP 데이터베이스 사용자는 통계에 액세스 할 수있는 권한이 있어야합니다. 그렇지 않으면 get_connection_stats는 널 값을 반환 할 수 있습니다.
해결책:
데이터베이스 사용자에게 충분한 권한이 있고 다음 SQL 문을 통해 권한을 확인할 수 있는지 확인하십시오.
<span><span><span class="hljs-keyword">SHOW</span></span><span> GRANTS </span><span><span class="hljs-keyword">FOR</span></span><span> </span><span><span class="hljs-string">'your_user'</span></span><span>@</span><span><span class="hljs-string">'your_host'</span></span><span>;
</span></span>
권한이 충분하지 않은 경우 적절한 권한, 특히 Performance_schema 및 Information_schema 에 대한 액세스 권한을 부여하는 것이 좋습니다.
<span><span><span class="hljs-keyword">GRANT</span></span><span> </span><span><span class="hljs-keyword">SHOW</span></span><span> DATABASES, </span><span><span class="hljs-keyword">SHOW</span></span><span> </span><span><span class="hljs-keyword">VIEW</span></span><span> </span><span><span class="hljs-keyword">ON</span></span><span> </span><span><span class="hljs-operator">*</span></span><span>.</span><span><span class="hljs-operator">*</span></span><span> </span><span><span class="hljs-keyword">TO</span></span><span> </span><span><span class="hljs-string">'your_user'</span></span><span>@</span><span><span class="hljs-string">'your_host'</span></span><span>;
</span></span>
get_connection_stats 는 MySQLI 확장 방법이므로 PHP에 MySQLI Extension이 구성되어 있고 MySQL 데이터베이스에 연결된 경우에만 작동합니다. PHP가 PDO_MYSQL과 같은 호환되지 않는 확장자를 설치하지 않거나 활성화하면이 기능을 사용할 수 없습니다.
해결책:
PHP 구성에서 MySQLI 확장이 활성화되어 있는지 확인하십시오. 다음과 같이 확인할 수 있습니다.
<span><span>php -m | grep mysqli
</span></span>
활성화되지 않은 경우 다음 명령을 사용하여 MySQLI 확장자를 설치하고 활성화하십시오.
<span><span>sudo apt-get install php-mysqli
sudo service apache2 restart
</span></span>
get_connection_stats가 여전히 데이터를 제공 할 수 없거나 사용중인 환경이 기능을 지원하지 않으면 다른 방법을 사용하여 연결 통계를 얻는 것을 고려할 수 있습니다. 예를 들어, 쇼 상태를 쿼리하여 연결 관련 정보를 수동으로 얻거나 MySQL의 글로벌 상태 명령문을 표시 할 수 있습니다.
<span><span><span class="hljs-keyword">SHOW</span></span><span> STATUS </span><span><span class="hljs-keyword">LIKE</span></span><span> </span><span><span class="hljs-string">'Threads_connected'</span></span><span>;
</span></span>
위의 방법 중 어느 것도 작동하지 않으면 MySQL 및 PHP의 오류 로그를 보는 것이 좋습니다. 이 로그에는 데이터베이스 연결 상태에 대한 유용한 정보가 포함되어있어 추가 문제를 해결하는 데 도움이됩니다.
해결책:
MySQL 오류 로그를 보려면 경로는 일반적으로 /var/log/mysql/error.log 또는 /var/log/mysqld.log 입니다.
php 오류 로그를 확인하면 경로 가 /var/log/apache2/error.log 또는 /var/log/php_errors.log 일 수 있습니다.
get_connection_stats를 사용하는 경우 데이터는 일반적으로 잘못된 데이터베이스 연결, 권한 문제, 부적절한 구성 또는 PHP 확장 문제로 인해 발생할 수 없습니다. 위의 방법을 통해 데이터 수집 기능을 일반적으로 효과적으로 복원 할 수 있습니다. 동시에, 시스템의 안정적인 작동을 보장하기 위해 연결 상태 정보를 얻기 위해 다른 대체 방법을 고려할 수 있습니다.