>백엔드 개발 >PHP 튜토리얼 >mysql.connect_timeout PHP 옵션으로 인해 60초 후에 MySQL 서버 연결 시간 초과가 발생합니까?

mysql.connect_timeout PHP 옵션으로 인해 60초 후에 MySQL 서버 연결 시간 초과가 발생합니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-18 22:10:30424검색

Is the mysql.connect_timeout PHP Option Causing MySQL Server Connection Timeouts After 60 Seconds?

MySQL Server 연결 끊김 문제: 시간 초과 후 60초 후에 연결이 끊어졌습니다.

문제:

발견했습니다. 이전에는 정상적으로 실행되었던 SQL 쿼리가 이제 60초 후에 시간 초과되고 오류가 발생합니다. 쿼리가 느리더라도 야간 작업의 일부로 실행되므로 그 자체로는 문제가 되지 않습니다(따라서 최적화하라고 제안하지 마세요).

아래와 같이 PHP에서 "select SLEEP(120);"을 실행하면 오류를 지속적으로 재현할 수 있습니다. 그러나 MySQL 클라이언트에서 동일한 명령문을 실행하면 성공합니다(0을 반환함). 나는 wait_timeout(28800으로 설정)을 조정하려고 시도했지만 성공하지 못했습니다. 또한 데이터베이스 서버와 컴퓨터 자체도 다시 시작했습니다.

항상 정확히 60초의 시간 초과가 발생하는데, 이는 리소스 제약 문제라기보다는 설정 문제일지도 모른다는 생각이 듭니다.

실행 중:

  • Windows Server 2003
  • MySQL 5.1.36-community
  • PHP 5.3

다음은 SHOW VARIABLES의 테스트 코드, 출력 및 결과입니다.

... 代码、输出和 SHOW VARIABLES 如下所示 ...

답변:

php 옵션 mysql.connect_timeout이 이 문제의 원인입니다. 연결 시간 초과뿐만 아니라 서버의 첫 번째 응답을 기다리는 데에도 사용됩니다. 다음과 같이 늘릴 수 있습니다.

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

위 내용은 mysql.connect_timeout PHP 옵션으로 인해 60초 후에 MySQL 서버 연결 시간 초과가 발생합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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