Heim > Artikel > Backend-Entwicklung > PHP-MySQL-Timeout-Einstellungsmethode
php MySQL-Timeout-Einstellungsmethode: Überprüfen Sie zuerst den Quellcode von MySQL und rufen Sie dann direkt die tatsächlichen Werte von „MYSQL_OPT_READ_TIMEOUT“ und „MYSQL_OPT_WRITE_TIME“ auf.
Legen Sie das Timeout für die PHP-Verbindung zu MySQL fest.
Das Timeout für die PHP-Verbindung zu MySQL kann in drei Bereiche unterteilt werden Typen:
连接超时 读超时 写超时
Da PHP derzeit über zwei Verbindungsmethoden verfügt, um eine Verbindung zu MySQL herzustellen, libmysql und mysqlnd (empfohlen).
Zuallererst libmysql
In der zugrunde liegenden Bibliothek von libmysql werden die Einstellungselemente MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_READ_TIMEOUT, MYSQL_OPT_WRITE_TIME sowie zugehörige APIs bereitgestellt.
Speicherort des Quellcodes
mysql-VERSION/sql-common/client.c 3020行
MYSQL_OPT_CONNECT_TIMEOUT kann direkt festgelegt werden. Aber MYSQL_OPT_READ_TIMEOUT und MYSQL_OPT_WRITE_TIME werden nicht von MySQL importiert.
Sie müssen also den Quellcode von MySQL überprüfen, die tatsächlichen Werte von MYSQL_OPT_READ_TIMEOUT und MYSQL_OPT_WRITE_TIME abrufen und dann mysql_option direkt aufrufen. Allerdings ist mysql_pdo fest codiert, sodass es keine Möglichkeit gibt, MYSQL_OPT_READ_TIMEOUT und MYSQL_OPT_WRITE_TIME festzulegen.
Quellcode-Speicherort:
mysql-VERSION/include/mysql.h 160 Zeilen
Aber MYSQL_OPT_READ_TIMEOUT ist in der MySQL5.6-Version und früher (wir verwenden 5.6 online), Für diesen Parameter gelten die folgenden drei Einschränkungen.
只能在TCP/IP协议下工作 MySQL server版本必须大于5.1.2 只能在windows下生效。
Die zweite ist mysqlnd
Für libmysql und mysqlnd sind sie die zugrunde liegenden Bibliotheken von mysql, mysqli und mysqlpdo. Daher ist ihre Unterstützung für diese drei Zeitüberschreitungen auf Codeebene gleich.
Aber für MYSQL_OPT_READ_TIMEOUT ist mysqlnd an mehreren Stellen auf der php.ini-Ebene konfiguriert
mysqlnd.net_read_timeout
Diese Konfiguration wird wirksam, wenn Langzeit-SQL ausgeführt wird, und Es wird die Fehlermeldung „2006-MySQL Server ist verschwunden“ gemeldet.
Dieser Parameter ist dem MYSQL_OPT_READ_TIMEOUT von libmysql sehr ähnlich. Allerdings gibt es für den Parameter MYSQL_OPT_READ_TIMEOUT Verwendungsszenarien, die in der vorherigen Zusammenfassung erläutert wurden.
MYSQL_OPT_CONNECT_TIMEOUT und MYSQL_OPT_WRITE_TIME sind identisch mit libmysql.
Empfohlen: "PHP-Tutorial"
Kurz gesagt
Verwenden Sie mysqlnd
Mysqlnd.net_read_time konfigurieren
Das obige ist der detaillierte Inhalt vonPHP-MySQL-Timeout-Einstellungsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!