Files
doc-fr/reference/mysqlnd/config.xml
George Peter Banyard 325229c95b Apply commit 6dfe0767250cdbdf509223f6bc266557b0a3fec9
xi:include INI settings documented elsewhere in ini.list
2021-02-24 17:45:14 +00:00

459 lines
17 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 6dfe0767250cdbdf509223f6bc266557b0a3fec9 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="mysqlnd.config" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.runtime;
&extension.runtime;
<para>
<table xml:id="mysqlnd.config.options">
<title>Options de configuration de MySQL Native Driver</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody xml:id="mysqlnd.config.options.list">
<row>
<entry><link linkend="ini.mysqlnd.collect-statistics">mysqlnd.collect_statistics</link></entry>
<entry>"1"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.collect-memory-statistics">mysqlnd.collect_memory_statistics</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.debug">mysqlnd.debug</link></entry>
<entry>""</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.log-mask">mysqlnd.log_mask</link></entry>
<entry>0</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.mempool-default-size">mysqlnd.mempool_default_size</link></entry>
<entry>16000</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.net-read-timeout">mysqlnd.net_read_timeout</link></entry>
<entry>"86400"</entry>
<entry>PHP_INI_ALL</entry>
<entry>
Avant PHP 7.2.0 la valeur par défaut était "31536000"
et la variabilité était <constant>PHP_INI_SYSTEM</constant>
</entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.net-cmd-buffer-size">mysqlnd.net_cmd_buffer_size</link></entry>
<entry>"4096"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.net-read-buffer-size">mysqlnd.net_read_buffer_size</link></entry>
<entry>"32768"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.sha256-server-public-key">mysqlnd.sha256_server_public_key</link></entry>
<entry>""</entry>
<entry>PHP_INI_PERDIR</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.trace-alloc">mysqlnd.trace_alloc</link></entry>
<entry>""</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.mysqlnd.fetch_data_copy">mysqlnd.fetch_data_copy</link></entry>
<entry>0</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
&ini.php.constants;
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.mysqlnd.collect-statistics">
<term>
<parameter>mysqlnd.collect_statistics</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Active la collecte de différentes statistiques du client auxquelles vous
pouvez accéder via <function>mysqli_get_client_stats</function>,
<function>mysqli_get_connection_stats</function>,
et qui sont aussi décrites
dans la section <literal>mysqlnd</literal> de la sortie de la fonction
<function>phpinfo</function>.
</para>
<para>
Ce paramètre active toutes
<link linkend="mysqlnd.stats"> les statistiques de MySQL Native Driver
</link> sauf celles relatives à la gestion de la mémoire.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.collect-memory-statistics">
<term>
<parameter>mysqlnd.collect_memory_statistics</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Active la collecte de différentes statistiques concernant la mémoire
qui peuvent être consultées via
<function>mysqli_get_client_stats</function>,
<function>mysqli_get_connection_stats</function>,
et qui sont aussi montrées dans
la section <literal>mysqlnd</literal> de la sortie de la fonction
<function>phpinfo</function>.
</para>
<para>
Ce paramètre active les statistiques de gestion de la mémoire parmi
<link linkend="mysqlnd.stats">les statistiques fournies par MySQL
Native Driver</link>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.debug">
<term>
<parameter>mysqlnd.debug</parameter> <type>string</type>
</term>
<listitem>
<para>
Journalise les communications en provenance de toute extension utilisant
<literal>mysqlnd</literal>.
</para>
<para>
Le format de cette directive est <literal>mysqlnd.debug =
"option1[,parameter_option1][:option2[,parameter_option2]]"</literal>.
</para>
<para>
Les options de formatage des chaines sont les suivantes:
</para>
<itemizedlist>
<listitem>
<para>
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.
</para>
</listitem>
<listitem>
<para>
a[,file] - Ajoute la trace à un fichier.
</para>
</listitem>
<listitem>
<para>
d - Active la sortie depuis les macros DBUG_&lt;N&gt; pour l'état actuel.
Peut être suivi d'une liste de mots-clés qui selectionnent la sortie seulement
pour les macros DBUG avec ce mot-clé (filtre). Une liste vide de mot-clé
sélectionnera tout.
</para>
</listitem>
<listitem>
<para>
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.
</para>
</listitem>
<listitem>
<para>
F - Marque chaque ligne de débogage du nom du fichier source contenant la macro
causant cette sortie.
</para>
</listitem>
<listitem>
<para>
i - Marque chaque ligne de débogage du PID.
</para>
</listitem>
<listitem>
<para>
L - Marque chaque ligne de débogage du nom du fichier source ainsi que de la ligne
de la macro qui cause cette sortie.
</para>
</listitem>
<listitem>
<para>
n - Marque chaque ligne de débogage de la profondeur actuelle de la fonction.
</para>
</listitem>
<listitem>
<para>
o[,file] - Similaire à a[,file] mais écrase les fichiers plutôt que de les
compléter.
</para>
</listitem>
<listitem>
<para>
O[,file] - Similaire à A[,file] mais écrase les fichiers plutôt que de les
compléter.
</para>
</listitem>
<listitem>
<para>
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.
</para>
</listitem>
<listitem>
<para>
x - Active le profilage.
</para>
</listitem>
<listitem>
<para>
m - Trace les allocations et désallocations de mémoire.
</para>
</listitem>
</itemizedlist>
<para>
Exemple:
</para>
<programlisting>
<![CDATA[
d:t:x:O,/tmp/mysqlnd.trace
]]>
</programlisting>
<note>
<para>
Cette caractéristique n'est disponible que pour les versions debug de PHP.
Fonctionne sur Microsoft Windows si PHP est en version debug et construit avec
Microsoft Visual C version 9 et supérieures.
</para>
</note>
<para></para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.log-mask">
<term>
<parameter>mysqlnd.log_mask</parameter>
<type>int</type>
</term>
<listitem>
<para>
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.
</para>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.mempool-default-size">
<term>
<parameter>mysqlnd.mempool_default_size</parameter>
<type>int</type>
</term>
<listitem>
<para>
Taille par défaut de la file d'attente mémoire mysqlnd, utilisée par les jeux
de résultats.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.net-read-timeout">
<term>
<parameter>mysqlnd.net_read_timeout</parameter>
<type>int</type>
</term>
<listitem>
<para>
<literal>mysqlnd</literal> et la MySQL Client Library,
<literal>libmysqlclient</literal> utilise des API réseau différentes.
<literal>mysqlnd</literal> utilise les flux PHP, alors que
<literal>libmysqlclient</literal> 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 <filename>php.ini</filename>,
<literal>default_socket_timeout</literal>. Ceci s'applique à tous les flux
qui ne précisent pas de timeout par défaut.
<literal>mysqlnd</literal> n'affecte aucune autre valeur et donc des requêtes
longues peuvent se voir déconnectées après
<literal>default_socket_timeout</literal> secondes avec comme résultat
un message d'erreur <quote>2006 - MySQL Server has gone
away</quote>. 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. <literal>mysqlnd</literal> utilise maintenant le même timeout très long.
La valeur est configurable via le paramètre <filename>php.ini</filename>
<literal>mysqlnd.net_read_timeout</literal>.
<literal>mysqlnd.net_read_timeout</literal> est donc utilisé par toute extension
(<literal>ext/mysql</literal>, <literal>ext/mysqli</literal>,
<literal>PDO_MySQL</literal>) qui se repose sur
<literal>mysqlnd</literal>. <literal>mysqlnd</literal> indique aux flux PHP d'utiliser
<literal>mysqlnd.net_read_timeout</literal>. Notez qu'il peut y avoir des différences
subtiles entre
<literal>MYSQL_OPT_READ_TIMEOUT</literal> de la MySQL Client Library et les flux
PHP, par exemple <literal>MYSQL_OPT_READ_TIMEOUT</literal> 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. Voyez la documentation des flux en cas
de doute.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.net-cmd-buffer-size">
<term>
<parameter>mysqlnd.net_cmd_buffer_size</parameter>
<type>int</type>
</term>
<listitem>
<para>
<literal>mysqlnd</literal> alloue un buffer interne pour le réseau d'une taille
de <literal>mysqlnd.net_cmd_buffer_size</literal> (dans
<filename>php.ini</filename>) octets pour chaque connexion. Si une commande du
protocole MySQL Client Server, par exemple,
<literal>COM_QUERY</literal> (requête <quote>normale</quote>), ne rentre pas dans
le buffer, <literal>mysqlnd</literal> va agrandir celui-ci à la taille requise.
A chaque fois que le buffer est agrandi pour une connexion,
<literal>command_buffer_too_small</literal> va être incrémenté de un.
</para>
<para>
Si <literal>mysqlnd</literal> doit agrandir le buffer au-delà de sa taille initiale de
<literal>mysqlnd.net_cmd_buffer_size</literal> octets pour presque toutes les connexions,
vous devriez alors augmenter cette taille par défaut afin d'éviter les ré-allocations.
</para>
<para>
La taille par défaut du buffer est de 4096 octets.
</para>
<para>
La valeur peut aussi être changée au moyen de <literal>mysqli_options(link,
MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size)</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.net-read-buffer-size">
<term>
<parameter>mysqlnd.net_read_buffer_size</parameter>
<type>int</type>
</term>
<listitem>
<para>
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. <literal>mysqlnd</literal> lit le corps sous forme de segments
de <literal>MIN(header.size, mysqlnd.net_read_buffer_size)</literal>
octets. Si le corps d'un paquet est plus grand que
<literal>mysqlnd.net_read_buffer_size</literal> octets,
<literal>mysqlnd</literal> doit alors appeler <literal>read()</literal>
plusieurs fois.
</para>
<para>
La valeur peut aussi être changée au moyen de <literal>mysqli_options(link,
MYSQLI_OPT_NET_READ_BUFFER_SIZE, size)</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.sha256-server-public-key">
<term>
<parameter>mysqlnd.sha256_server_public_key</parameter>
<type>string</type>
</term>
<listitem>
<para>
En rapport avec le plugin d'authentification SHA-256.
Fichier contenant la clé publique RSA sur serveur MySQL.
</para>
<para>
Les clients peuvent soit ommettre 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 <function>mysqli_options</function>.
Si aucun fichier de clé publique RSA n'est fourni par le client, alors la clé
sera échangé conformément à la procédure du plugin d'authentification standard
SHA-256.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.trace-alloc">
<term>
<parameter>mysqlnd.trace_alloc</parameter>
<type>string</type>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.mysqlnd.fetch_data_copy">
<term>
<parameter>mysqlnd.fetch_data_copy</parameter>
<type>int</type>
</term>
<listitem>
<para>
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. Veuillez vous référer aux,
<link linkend="mysqlnd.memory">notes d'implémentation sur la gestion de mémoire</link>
pour plus de détails.
</para>
<para>
Copier les jeux de résultats au lieu d'avoir des variables PHP les référencant permet de libérér au plus tot 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.
</para>
<para>
Ne pas activer avec PDO_MySQL. PDO_MySQL ne supporte pas encore ce mode.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->