>  기사  >  백엔드 개발  >  php mysql 시간 초과 설정 방법

php mysql 시간 초과 설정 방법

藏色散人
藏色散人원래의
2020-07-23 09:42:443558검색

php mysql 시간 초과 설정 방법: 먼저 MySQL의 소스 코드를 확인한 다음 "MYSQL_OPT_READ_TIMEOUT" 및 "MYSQL_OPT_WRITE_TIME"의 실제 값을 가져오고 마지막으로 "mysql_option"을 직접 호출합니다.

php mysql 시간 초과 설정 방법

php가 mysql에 연결하는 데 필요한 시간 초과 설정

php가 mysql에 연결하는 데 필요한 시간 초과는 세 가지 유형으로 나눌 수 있습니다.

连接超时
读超时
写超时

현재 php가 mysql에 연결하는 데는 두 가지 연결 방법이 있으므로 , libmysql 및 mysqlnd(권장).

먼저 libmysql

기본 라이브러리 libmysql에는 MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_READ_TIMEOUT, MYSQL_OPT_WRITE_TIME 설정 항목이 제공되며, 관련 API가 제공됩니다.

소스 코드 위치

mysql-VERSION/sql-common/client.c 3020行

MYSQL_OPT_CONNECT_TIMEOUT을 직접 설정할 수 있습니다. 그러나 MYSQL_OPT_READ_TIMEOUT 및 MYSQL_OPT_WRITE_TIME은 mysqli에서 가져오지 않습니다.

그래서 MySQL의 소스 코드를 확인하고 MYSQL_OPT_READ_TIMEOUT과 MYSQL_OPT_WRITE_TIME의 실제 값을 가져온 다음 mysql_option을 직접 호출해야 합니다. 그러나 mysql_pdo는 하드 코딩되어 있으므로 MYSQL_OPT_READ_TIMEOUT 및 MYSQL_OPT_WRITE_TIME을 설정할 방법이 없습니다.

소스 코드 위치:

mysql-VERSION/include/mysql.h 160줄

하지만 MYSQL_OPT_READ_TIMEOUT은 mysql5.6 버전과 그 이전 버전(온라인에서는 5.6을 사용함)에 이 매개 변수에는 다음 세 가지 제한 사항이 있습니다.

只能在TCP/IP协议下工作
MySQL server版本必须大于5.1.2
只能在windows下生效。

두 번째는 mysqlnd

libmysql과 mysqlnd의 경우 mysql, mysqli, mysqlpdo의 기본 라이브러리이므로 API를 외부에 노출하는 확장 기능입니다. 이 세 가지 유형의 지원은 코드 수준에서 동일합니다.

그러나 MYSQL_OPT_READ_TIMEOUT의 경우 mysqlnd는 php.ini 수준의 여러 위치에 구성됩니다.

mysqlnd.net_read_timeout

이 구성은 장시간 SQL을 실행할 때 적용되며 "2006-MySQL Server가 사라졌습니다"라는 오류가 발생합니다. 보고되었습니다.

이 매개변수는 libmysql의 MYSQL_OPT_READ_TIMEOUT과 매우 유사합니다. 그러나 MYSQL_OPT_READ_TIMEOUT 매개변수에는 이전 요약에서 설명한 사용 시나리오가 있습니다.

MYSQL_OPT_CONNECT_TIMEOUT 및 MYSQL_OPT_WRITE_TIME은 libmysql과 동일합니다.

권장: "PHP 튜토리얼"

간단히

  • mysqlnd

  • mysqlnd.net_read_time

을 사용하세요.

위 내용은 php mysql 시간 초과 설정 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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