Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration de MySQL Native Driver
Nom Défaut Modifiable Historique
mysqlnd.collect_statistics "1" INI_SYSTEM  
mysqlnd.collect_memory_statistics "0" INI_SYSTEM  
mysqlnd.debug "" INI_SYSTEM  
mysqlnd.log_mask 0 INI_ALL  
mysqlnd.mempool_default_size 16000 INI_ALL  
mysqlnd.net_read_timeout "86400" INI_ALL Avant PHP 7.2.0 la valeur par défaut était "31536000" et la variabilité était INI_SYSTEM
mysqlnd.net_cmd_buffer_size "4096" INI_SYSTEM  
mysqlnd.net_read_buffer_size "32768" INI_SYSTEM  
mysqlnd.sha256_server_public_key "" INI_PERDIR  
mysqlnd.trace_alloc "" INI_SYSTEM  
mysqlnd.fetch_data_copy 0 INI_ALL Supprimé à partir de PHP 8.1.0
Pour plus de dĂ©tails sur les modes INI_*, reportez-vous Ă  OĂč une directive de configuration peut ĂȘtre modifiĂ©e.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqlnd.collect_statistics bool
Active la collecte de différentes statistiques du client auxquelles l'on peut accéder via mysqli_get_client_stats(), mysqli_get_connection_stats(), et qui sont aussi décrites dans la section mysqlnd de la sortie de la fonction phpinfo(). Ce paramÚtre active toutes les statistiques de MySQL Native Driver sauf celles relatives à la gestion de la mémoire.
mysqlnd.collect_memory_statistics bool
Active la collecte de diffĂ©rentes statistiques concernant la mĂ©moire qui peuvent ĂȘtre consultĂ©es via mysqli_get_client_stats(), mysqli_get_connection_stats(), et qui sont aussi montrĂ©es dans la section mysqlnd de la sortie de la fonction phpinfo(). Ce paramĂštre active les statistiques de gestion de la mĂ©moire parmi les statistiques fournies par MySQL Native Driver.
mysqlnd.debug string
Journalise les communications en provenance de toute extension utilisant mysqlnd. Le format de cette directive est mysqlnd.debug = "option1[,parameter_option1][:option2[,parameter_option2]]". Les options de formatage des chaĂźnes sont les suivantes:
  • A[,file] - Ajoute la trace Ă  un fichier. S'assure que les donnĂ©es sont Ă©crites aprĂšs chaque Ă©criture en fermant puis rouvrant le fichier de trace (lent). Ceci aide Ă  s'assurer que le fichier de traces sera complet mĂȘme si l'application crash.
  • a[,file] - Ajoute la trace Ă  un fichier.
  • d - Active la sortie depuis les macros DBUG_<N> pour l'Ă©tat actuel. Peut ĂȘtre suivi d'une liste de mots-clĂ©s qui sĂ©lectionnent la sortie seulement pour les macros DBUG avec ce mot-clĂ© (filtre). Une liste vide de mot-clĂ© sĂ©lectionnera tout.
  • f[,functions] - Limite les actions du dĂ©bogueur Ă  une liste spĂ©cifique de fonctions. Une liste vide fera en sorte que toutes les fonctions seront utilisĂ©es.
  • F - Marque chaque ligne de dĂ©bogage du nom du fichier source contenant la macro causant cette sortie.
  • i - Marque chaque ligne de dĂ©bogage du PID.
  • L - Marque chaque ligne de dĂ©bogage du nom du fichier source ainsi que de la ligne de la macro qui cause cette sortie.
  • n - Marque chaque ligne de dĂ©bogage de la profondeur actuelle de la fonction.
  • o[,file] - Similaire Ă  a[,file] mais Ă©crase les fichiers plutĂŽt que de les complĂ©ter.
  • O[,file] - Similaire Ă  A[,file] mais Ă©crase les fichiers plutĂŽt que de les complĂ©ter.
  • t[,N] - Active le traçage du flux de contrĂŽle des fonctions. La profondeur maximale est prĂ©cisĂ©e par N, par dĂ©faut 200.
  • x - Active le profilage.
  • m - Trace les allocations et dĂ©sallocations de mĂ©moire.
Exemple:
d:t:x:O,/tmp/mysqlnd.trace

Note: Cette caractéristique n'est disponible que pour les versions debug de PHP.

mysqlnd.log_mask int
DĂ©finit quelle requĂȘte sera historisĂ©e. Par dĂ©faut, vaut 0, ce qui signifie que les logs sont dĂ©sactivĂ©s. Il convient de dĂ©finir cette option en utilisant un entier, et non une constante PHP. Par exemple, une valeur de 48 (16 + 32) va historiser les requĂȘtes lentes qui utilisent soit 'no good index' (SERVER_QUERY_NO_GOOD_INDEX_USED = 16) soit aucun index du tout (SERVER_QUERY_NO_INDEX_USED = 32). Une valeur de 2043 (1 + 2 + 8 + ... + 1024) historisera tout type de requĂȘtes lentes. Les types sont les suivants : SERVER_STATUS_IN_TRANS=1, SERVER_STATUS_AUTOCOMMIT=2, SERVER_MORE_RESULTS_EXISTS=8, SERVER_QUERY_NO_GOOD_INDEX_USED=16, SERVER_QUERY_NO_INDEX_USED=32, SERVER_STATUS_CURSOR_EXISTS=64, SERVER_STATUS_LAST_ROW_SENT=128, SERVER_STATUS_DB_DROPPED=256, SERVER_STATUS_NO_BACKSLASH_ESCAPES=512, et SERVER_QUERY_WAS_SLOW=1024.
mysqlnd.mempool_default_size int
Taille par défaut de la file d'attente mémoire mysqlnd, utilisée par les jeux de résultats.
mysqlnd.net_read_timeout int
mysqlnd et la MySQL Client Library, libmysqlclient utilisent des API rĂ©seau diffĂ©rentes. mysqlnd utilise les flux PHP, alors que libmysqlclient utilise sa propre implĂ©mentation basĂ©e sur le systĂšme. PHP, par dĂ©faut, utilise un timeout en lecture de 60s. Ceci en utilisant le paramĂštre de php.ini, default_socket_timeout. Ceci s'applique Ă  tous les flux qui ne prĂ©cisent pas de timeout par dĂ©faut. mysqlnd n'affecte aucune autre valeur et donc des requĂȘtes longues peuvent se voir dĂ©connectĂ©es aprĂšs default_socket_timeout secondes avec comme rĂ©sultat un message d'erreur 2006 - MySQL Server has gone away. La MySQL Client Library affecte un timeout par dĂ©faut de 24 * 3600 secondes (1 jour) et attend les autres timeout, comme ceux de TCP/IP. mysqlnd utilise maintenant le mĂȘme timeout trĂšs long. La valeur est configurable via le paramĂštre php.ini mysqlnd.net_read_timeout. mysqlnd.net_read_timeout est donc utilisĂ© par toute extension (ext/mysql, ext/mysqli, PDO_MySQL) qui se repose sur mysqlnd. mysqlnd indique aux flux PHP d'utiliser mysqlnd.net_read_timeout. À noter : qu'il peut y avoir des diffĂ©rences subtiles entre MYSQL_OPT_READ_TIMEOUT de la MySQL Client Library et les flux PHP, par exemple MYSQL_OPT_READ_TIMEOUT est dite fonctionnelle uniquement avec des connexions TCP/IP et, avant MySQL 5.1.2, seulement sous Windows. Les flux PHP, eux, n'ont pas cette limite. Voir la documentation des flux en cas de doute.
mysqlnd.net_cmd_buffer_size int
mysqlnd alloue un buffer interne pour le rĂ©seau d'une taille de mysqlnd.net_cmd_buffer_size (dans php.ini) octets pour chaque connexion. Si une commande du protocole MySQL Client Server, par exemple, COM_QUERY (requĂȘte normale), ne rentre pas dans le buffer, mysqlnd va agrandir celui-ci Ă  la taille requise. A chaque fois que le buffer est agrandi pour une connexion, command_buffer_too_small va ĂȘtre incrĂ©mentĂ© d'un. Si mysqlnd doit agrandir le buffer au-delĂ  de sa taille initiale de mysqlnd.net_cmd_buffer_size octets pour presque toutes les connexions, il est recommandĂ© d'alors augmenter cette taille par dĂ©faut afin d'Ă©viter les rĂ©-allocations. La taille par dĂ©faut du buffer est de 4096 octets. La valeur peut aussi ĂȘtre changĂ©e au moyen de mysqli_options(link, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size).
mysqlnd.net_read_buffer_size int
Taille maximale du segment en lecture lors de la lecture du corps d'un paquet de commande MySQL. Le protocole serveur de MySQL encapsule toutes ses commandes dans des paquets. Les paquets consistent en un en-tĂȘte court suivi d'un corps contenant les infos. La taille du corps est encodĂ©e dans l'en-tĂȘte. mysqlnd lit le corps sous forme de segments de MIN(header.size, mysqlnd.net_read_buffer_size) octets. Si le corps d'un paquet est plus grand que mysqlnd.net_read_buffer_size octets, mysqlnd doit alors appeler read() plusieurs fois. La valeur peut aussi ĂȘtre changĂ©e au moyen de mysqli_options(link, MYSQLI_OPT_NET_READ_BUFFER_SIZE, size).
mysqlnd.sha256_server_public_key string
En rapport avec le plugin d'authentification SHA-256. Fichier contenant la clé publique RSA sur serveur MySQL. Les clients peuvent soit omettre de définir une clé publique RSA et spécifier la clé via la directive de configuration PHP, ou bien, définir la clé au moment de l'exécution en utilisant la fonction mysqli_options(). Si aucun fichier de clé publique RSA n'est fourni par le client, alors la clé sera échangée conformément à la procédure du plugin d'authentification standard SHA-256.
mysqlnd.trace_alloc string
mysqlnd.fetch_data_copy int
Impose la copie des jeux de rĂ©sultats depuis les tampons internes vers des variables PHP au lieu d'utiliser le mĂ©canisme par dĂ©faut de rĂ©fĂ©rence et de copie sur Ă©criture. Se rĂ©fĂ©rer aux, notes d'implĂ©mentation sur la gestion de mĂ©moire pour plus de dĂ©tails. Copier les jeux de rĂ©sultats au lieu d'avoir des variables PHP les rĂ©fĂ©rençant permet de libĂ©rer au plus tĂŽt la mĂ©moire occupĂ©e par les variables PHP. En fonction du code de l'API cliente, les requĂȘtes actuelles et de la taille de leurs jeux de rĂ©sultats, ceci peut rĂ©duire l'empreinte mĂ©moire de mysqlnd. Ne pas activer avec PDO_MySQL. PDO_MySQL ne supporte pas encore ce mode.

Note: Supprimé à partir de PHP 8.1.0

add a note

User Contributed Notes

There are no user contributed notes for this page.