MySQL 서버가 사라졌습니다. 예상보다 60초 정도 늦었습니다.
이 문서에서는 MySQL 서버가 쿼리를 수행하게 된 원인에 대해 설명합니다. 120초 동안 지속된 문제 60초 후에 시간이 초과되고 오류가 발생하는 문제입니다. 쿼리가 제대로 실행되었음에도 불구하고 PHP 스크립트의 문제로 인해 이 오류가 발생했습니다.
문제 증상
시스템 구성
분석
SHOW VARIABLES 출력을 확인한 결과 wait_timeout이 28800(480분)으로 설정되어 있는 것을 확인했지만 여전히 오류가 발생합니다. 이는 wait_timeout이 문제가 아님을 보여줍니다.
해결 방법
문제의 원인은 PHP 옵션 mysql.connect_timeout입니다. 이 옵션은 연결 시간 초과뿐만 아니라 서버의 첫 번째 응답을 기다리는 데에도 사용됩니다. 쿼리 시간은 120초로 설정되어 있고 mysql.connect_timeout은 기본적으로 60초로 설정되어 있으므로 서버는 60초 후에 연결을 종료하여 오류가 발생합니다.
mysql.connect_timeout을 120초 이상으로 늘려 이 문제를 해결했습니다. 이는 다음 코드를 사용하여 달성됩니다:
ini_set('mysql.connect_timeout', 300); ini_set('default_socket_timeout', 300);
이렇게 하면 mysql.connect_timeout이 300초로 늘어나 서버 응답을 기다리는 동안 연결이 조기에 종료되는 것을 방지할 수 있습니다.
위 내용은 `wait_timeout`이 훨씬 높음에도 불구하고 MySQL 쿼리가 60초 후에 시간 초과되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!