>  기사  >  백엔드 개발  >  성공적으로 실행되었던 MySQL 쿼리가 이제 60초 후에 시간 초과되는 이유는 무엇입니까?

성공적으로 실행되었던 MySQL 쿼리가 이제 60초 후에 시간 초과되는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-18 22:12:03473검색

Why does a MySQL query now time out after 60 seconds when it used to execute successfully?

MySQL Server 60초 시간 초과 문제

이 문서에서는 이전에 성공했던 MySQL 쿼리가 이제 60초 후에 시간 초과되는 문제를 살펴봅니다. , "MySQL 서버가 사라졌습니다."라는 오류 메시지가 표시됩니다. 쿼리 자체는 느리지만 항상 야간 작업의 일부였으며 최근까지 문제가 발생한 적이 없습니다.

문제 증상

  • 쿼리 시간이 초과되기 전에 정확히 60초 동안 멈춥니다.
  • "SELECT SLEEP(120);" 문을 실행하면 문제가 재현될 수 있습니다.
  • MySQL 클라이언트에서 실행하면 동일한 명령문이 성공적으로 실행됩니다.
  • "wait_timeout" 변수를 28800초로 조정해도 문제가 해결되지 않습니다.

가능한 원인

  • CPU 또는 메모리와 같은 제한된 리소스는 문제가 항상 정확히 60초에 시간 초과되므로 가능성 있는 원인이 아닙니다.
  • A 잠재적인 원인은 리소스 제한이 아닌 잘못된 설정일 수 있습니다.

문제 해결

기본 PHP 설정 "mysql.connect_timeout"이 루트인 것으로 확인되었습니다. 문제의. 이 설정은 연결 시간 초과뿐만 아니라 서버의 초기 응답에 대한 대기 시간도 제어합니다.

해결 방법

대기 시간을 늘리려면 다음과 같은 PHP 구성을 사용할 수 있습니다. 사용됨:

ini_set('mysql.connect_timeout', 300);
ini_set('default_socket_timeout', 300); 

이 변경으로 인해 대기 시간이 지정된 값까지 늘어나 쿼리가 시간 초과 없이 완료될 수 있습니다.

위 내용은 성공적으로 실행되었던 MySQL 쿼리가 이제 60초 후에 시간 초과되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.