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".
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!