Maison  >  Article  >  développement back-end  >  méthode de configuration du délai d'attente php mysql

méthode de configuration du délai d'attente php mysql

藏色散人
藏色散人original
2020-07-23 09:42:443491parcourir

Méthode de configuration du délai d'attente php mysql : vérifiez d'abord le code source de MySQL ; puis obtenez les valeurs réelles de "MYSQL_OPT_READ_TIMEOUT" et "MYSQL_OPT_WRITE_TIME" ; enfin, appelez directement "mysql_option".

méthode de configuration du délai d'attente php mysql

Définir le délai d'expiration de la connexion php à mysql

Le délai d'expiration de la connexion php à mysql peut être divisé en trois types :

连接超时
读超时
写超时

Parce que PHP dispose actuellement de deux méthodes de connexion pour se connecter à mysql, libmysql et mysqlnd (recommandé).

Tout d'abord, libmysql

Dans la bibliothèque sous-jacente de libmysql, MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_READ_TIMEOUT, MYSQL_OPT_WRITE_TIME les éléments de configuration sont fournis et les API associées sont fournies.

Emplacement du code source

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

MYSQL_OPT_CONNECT_TIMEOUT peut être défini directement. Mais MYSQL_OPT_READ_TIMEOUT et MYSQL_OPT_WRITE_TIME ne sont pas importés par mysqli.

Vous devez donc vérifier le code source de MySQL, obtenir les valeurs réelles de MYSQL_OPT_READ_TIMEOUT et MYSQL_OPT_WRITE_TIME, puis appeler directement mysql_option. Cependant, mysql_pdo est codé en dur, il n'y a donc aucun moyen de définir MYSQL_OPT_READ_TIMEOUT et MYSQL_OPT_WRITE_TIME.

Emplacement du code source :

mysql-VERSION/include/mysql.h 160 lignes

Mais MYSQL_OPT_READ_TIMEOUT est en version mysql5.6 et avant (nous utilisons 5.6 en ligne), Ce paramètre présente les trois limitations suivantes.

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

La seconde est mysqlnd

Pour libmysql et mysqlnd, ce sont les bibliothèques sous-jacentes de mysql, mysqli et mysqlpdo. leur prise en charge de ces trois délais d'attente est donc la même au niveau du code.

Mais pour MYSQL_OPT_READ_TIMEOUT, mysqlnd est configuré à plusieurs endroits au niveau php.ini

mysqlnd.net_read_timeout

Cette configuration prendra effet lors de l'exécution de SQL de longue durée, et une erreur sera signalée "2006-MySQL Server a disparu".

Ce paramètre est très similaire à MYSQL_OPT_READ_TIMEOUT de libmysql. Cependant, le paramètre MYSQL_OPT_READ_TIMEOUT possède des scénarios d'utilisation, qui ont été expliqués dans le résumé précédent.

MYSQL_OPT_CONNECT_TIMEOUT et MYSQL_OPT_WRITE_TIME sont identiques à libmysql.

Recommandé : "Tutoriel PHP"

En bref

  • Utiliser mysqlnd

  • Configurer mysqlnd.net_read_time

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn