<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.mysqlnd.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'mysqlnd.config.php',
    1 => 'Configuraci&oacute;n en tiempo de ejecuci&oacute;n',
    2 => 'Configuraci&oacute;n en tiempo de ejecuci&oacute;n',
  ),
  'up' => 
  array (
    0 => 'book.mysqlnd.php',
    1 => 'Mysqlnd',
  ),
  'prev' => 
  array (
    0 => 'mysqlnd.install.php',
    1 => 'Instalaci&oacute;n',
  ),
  'next' => 
  array (
    0 => 'mysqlnd.incompatibilities.php',
    1 => 'Incompatibilidades',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/mysqlnd/config.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mysqlnd.config" class="chapter">

 <h1 class="title">Configuración en tiempo de ejecución</h1>

 <p class="simpara">El comportamiento de estas funciones es
afectado por la configuración en el archivo <var class="filename">php.ini</var>.</p>

 <p class="para">
  <table id="mysqlnd.config.options" class="doctable table">
   <caption><strong>Opciones de configuración de MySQL Native Driver</strong></caption>
    
     <thead>
      <tr>
       <th>Nombre</th>
       <th>Por defecto</th>
       <th>Cambiable</th>
       <th>Historial de cambios</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td><a href="mysqlnd.config.php#ini.mysqlnd.collect-statistics" class="link">mysqlnd.collect_statistics</a></td>
       <td>&quot;1&quot;</td>
       <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr>
       <td><a href="mysqlnd.config.php#ini.mysqlnd.collect-memory-statistics" class="link">mysqlnd.collect_memory_statistics</a></td>
       <td>&quot;0&quot;</td>
       <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr>
       <td><a href="mysqlnd.config.php#ini.mysqlnd.debug" class="link">mysqlnd.debug</a></td>
       <td>&quot;&quot;</td>
       <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr>
       <td><a href="mysqlnd.config.php#ini.mysqlnd.log-mask" class="link">mysqlnd.log_mask</a></td>
       <td>0</td>
       <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr>
       <td><a href="mysqlnd.config.php#ini.mysqlnd.mempool-default-size" class="link">mysqlnd.mempool_default_size</a></td>
       <td>16000</td>
       <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr>
      <td><a href="mysqlnd.config.php#ini.mysqlnd.net-read-timeout" class="link">mysqlnd.net_read_timeout</a></td>
      <td>&quot;86400&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td>
       Antes de PHP 7.2.0 el valor por omisión era &quot;31536000&quot;
       y la variabilidad era <strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong>
      </td>
     </tr>

      <tr>
       <td><a href="mysqlnd.config.php#ini.mysqlnd.net-cmd-buffer-size" class="link">mysqlnd.net_cmd_buffer_size</a></td>
       <td>&quot;4096&quot;</td>
       <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr>
       <td><a href="mysqlnd.config.php#ini.mysqlnd.net-read-buffer-size" class="link">mysqlnd.net_read_buffer_size</a></td>
       <td>&quot;32768&quot;</td>
       <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr>
       <td><a href="mysqlnd.config.php#ini.mysqlnd.sha256-server-public-key" class="link">mysqlnd.sha256_server_public_key</a></td>
       <td>&quot;&quot;</td>
       <td><strong><code><a href="info.constants.php#constant.ini-perdir">INI_PERDIR</a></code></strong></td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr>
       <td><a href="mysqlnd.config.php#ini.mysqlnd.trace-alloc" class="link">mysqlnd.trace_alloc</a></td>
       <td>&quot;&quot;</td>
       <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr>
      <td><a href="mysqlnd.config.php#ini.mysqlnd.fetch_data_copy" class="link">mysqlnd.fetch_data_copy</a></td>
      <td>0</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td>Eliminado a partir de PHP 8.1.0</td>
     </tr>

     </tbody>
    
   </table>

   Para más detalles sobre los modos INI_*,
        refiérase a <a href="configuration.changes.modes.php" class="xref">D&oacute;nde una directiva de configuraci&oacute;n puede ser modificada</a>.
 </p>

 <p class="para">Aquí hay una aclaración sobre
el uso de las directivas de configuración.</p>

 <dl>
  
   <dt id="ini.mysqlnd.collect-statistics">
    <code class="parameter">mysqlnd.collect_statistics</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Activa la recolección de diferentes estadísticas del cliente a las cuales
     se puede acceder mediante <span class="function"><a href="function.mysqli-get-client-stats.php" class="function">mysqli_get_client_stats()</a></span>,
     <span class="function"><a href="mysqli.get-connection-stats.php" class="function">mysqli_get_connection_stats()</a></span>,
     y que también se describen
     en la sección <code class="literal">mysqlnd</code> de la salida de la función
     <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span>.
    </span>
    <span class="simpara">
     Este parámetro activa todas
     <a href="mysqlnd.stats.php" class="link"> las estadísticas de MySQL Native Driver
     </a> excepto las relativas a la gestión de la memoria.
    </span>
   </dd>
   
   
    <dt id="ini.mysqlnd.collect-memory-statistics">
     <code class="parameter">mysqlnd.collect_memory_statistics</code>
     <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
    </dt>
    <dd>
     <span class="simpara">
      Activa la recolección de diferentes estadísticas concernientes a la memoria
      que pueden ser consultadas mediante
      <span class="function"><a href="function.mysqli-get-client-stats.php" class="function">mysqli_get_client_stats()</a></span>,
      <span class="function"><a href="mysqli.get-connection-stats.php" class="function">mysqli_get_connection_stats()</a></span>,
      y que también se muestran en
      la sección <code class="literal">mysqlnd</code> de la salida de la función
      <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span>.
     </span>
     <span class="simpara">
      Este parámetro activa las estadísticas de gestión de la memoria entre
      <a href="mysqlnd.stats.php" class="link">las estadísticas proporcionadas por MySQL
       Native Driver</a>.
     </span>
    </dd>
   
   
    <dt id="ini.mysqlnd.debug">
     <code class="parameter">mysqlnd.debug</code> <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <span class="simpara">
      Registra las comunicaciones provenientes de cualquier extensión que utilice
      <code class="literal">mysqlnd</code>.
     </span>
     <span class="simpara">
      El formato de esta directiva es <code class="literal">mysqlnd.debug =
      &quot;option1[,parameter_option1][:option2[,parameter_option2]]&quot;</code>.
     </span>
     <span class="simpara">
      Las opciones de formato de strings son las siguientes:
     </span>
     <ul class="itemizedlist">
      <li class="listitem">
       <span class="simpara">
        A[,file] - Añade la traza a un fichero. Asegura que los datos son escritos
        después de cada escritura cerrando y volviendo a abrir el fichero de traza (lento). Esto
        ayuda a asegurar que el fichero de trazas será completo incluso si la aplicación falla.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        a[,file] - Añade la traza a un fichero.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        d - Activa la salida desde las macros DBUG_&lt;N&gt; para el estado actual.
        Puede ser seguido de una lista de palabras clave que seleccionan la salida solo
        para las macros DBUG con esa palabra clave (filtro). Una lista vacía de palabras clave
        seleccionará todo.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        f[,functions] - Limita las acciones del depurador a una lista específica de funciones.
        Una lista vacía hará que todas las funciones sean utilizadas.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        F - Marca cada línea de depuración con el nombre del fichero fuente que contiene la macro
        que causa esta salida.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        i - Marca cada línea de depuración con el PID.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        L - Marca cada línea de depuración con el nombre del fichero fuente así como la línea
        de la macro que causa esta salida.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        n - Marca cada línea de depuración con la profundidad actual de la función.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        o[,file] - Similar a a[,file] pero sobrescribe los ficheros en lugar de complementarlos.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        O[,file] - Similar a A[,file] pero sobrescribe los ficheros en lugar de complementarlos.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        t[,N] - Activa el trazado del flujo de control de las funciones. La profundidad máxima
        se especifica mediante N, por omisión 200.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        x - Activa el perfilado.
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        m - Trazar las asignaciones y desasignaciones de memoria.
       </span>
      </li>
     </ul>
     <span class="simpara">
      Ejemplo:
     </span>
     <div class="example-contents">
<div class="cdata"><pre>
d:t:x:O,/tmp/mysqlnd.trace
</pre></div>
    </div>

    <blockquote class="note"><p><strong class="note">Nota</strong>: 
     <span class="simpara">
      Esta característica solo está disponible para las versiones de depuración de PHP.
     </span>
    </p></blockquote>
    <span class="simpara"/>
   </dd>
   
   
    <dt id="ini.mysqlnd.log-mask">
     <code class="parameter">mysqlnd.log_mask</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <span class="simpara">
      Define qué consulta será historizada. Por omisión, vale 0, lo que significa
      que los logs están desactivados. Conviene definir esta opción utilizando
      un entero, y no una constante PHP. Por ejemplo, un valor de
      48 (16 + 32) historizará las consultas lentas que utilicen &#039;no good index&#039;
      (SERVER_QUERY_NO_GOOD_INDEX_USED = 16) o ningún índice en absoluto (SERVER_QUERY_NO_INDEX_USED = 32).
      Un valor de 2043 (1 + 2 + 8 + ... + 1024) historizará todo tipo de consultas lentas.
     </span>
     <span class="simpara">
      Los tipos son los siguientes: 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, y SERVER_QUERY_WAS_SLOW=1024.
     </span>
    </dd>
   
   
    <dt id="ini.mysqlnd.mempool-default-size">
     <code class="parameter">mysqlnd.mempool_default_size</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <span class="simpara">
      Tamaño por omisión de la cola de memoria mysqlnd, utilizada por los juegos
      de resultados.
     </span>
    </dd>
   
   
    <dt id="ini.mysqlnd.net-read-timeout">
     <code class="parameter">mysqlnd.net_read_timeout</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <span class="simpara">
      <code class="literal">mysqlnd</code> y la MySQL Client Library,
      <code class="literal">libmysqlclient</code> utilizan API de red diferentes.
      <code class="literal">mysqlnd</code> utiliza los flujos PHP, mientras que
      <code class="literal">libmysqlclient</code> utiliza su propia implementación basada en
      el sistema. PHP, por omisión, utiliza un timeout de lectura de 60s. Esto
      utilizando el parámetro de <var class="filename">php.ini</var>,
      <code class="literal">default_socket_timeout</code>. Esto se aplica a todos los flujos
      que no especifican un timeout por omisión.
      <code class="literal">mysqlnd</code> no afecta ningún otro valor y por lo tanto las consultas
      largas pueden verse desconectadas después
      de <code class="literal">default_socket_timeout</code> segundos con el resultado
      de un mensaje de error <q class="quote">2006 - MySQL Server has gone
      away</q>. La MySQL Client Library afecta un timeout por omisión de
      24 * 3600 segundos (1 día) y espera otros timeouts, como los de
      TCP/IP. <code class="literal">mysqlnd</code> utiliza ahora el mismo timeout muy largo.
      El valor es configurable mediante el parámetro <var class="filename">php.ini</var>
      <code class="literal">mysqlnd.net_read_timeout</code>.
      <code class="literal">mysqlnd.net_read_timeout</code> es por lo tanto utilizado por cualquier extensión
      (<code class="literal">ext/mysql</code>, <code class="literal">ext/mysqli</code>,
      <code class="literal">PDO_MySQL</code>) que se basa en
      <code class="literal">mysqlnd</code>. <code class="literal">mysqlnd</code> indica a los flujos PHP utilizar
      <code class="literal">mysqlnd.net_read_timeout</code>. Tenga en cuenta que puede haber diferencias
      sutiles entre
      <code class="literal">MYSQL_OPT_READ_TIMEOUT</code> de la MySQL Client Library y los flujos
      PHP, por ejemplo <code class="literal">MYSQL_OPT_READ_TIMEOUT</code> se dice funcional
      únicamente con conexiones TCP/IP y, antes de MySQL 5.1.2, solo en Windows.
      Los flujos PHP, ellos, no tienen esta limitación. Consulte la documentación de los flujos en caso de duda.
     </span>
    </dd>
   
   
    <dt id="ini.mysqlnd.net-cmd-buffer-size">
     <code class="parameter">mysqlnd.net_cmd_buffer_size</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <span class="simpara">
      <code class="literal">mysqlnd</code> asigna un buffer interno para la red de un tamaño
      de <code class="literal">mysqlnd.net_cmd_buffer_size</code> (en
      <var class="filename">php.ini</var>) bytes para cada conexión. Si una orden del
      protocolo MySQL Client Server, por ejemplo,
      <code class="literal">COM_QUERY</code> (consulta <q class="quote">normal</q>), no cabe en
      el buffer, <code class="literal">mysqlnd</code> aumentará aquel a la tamaño requerido.
      Cada vez que el buffer es aumentado para una conexión,
      <code class="literal">command_buffer_too_small</code> será incrementado en uno.
     </span>
     <span class="simpara">
      Si <code class="literal">mysqlnd</code> debe aumentar el buffer más allá de su tamaño inicial de
      <code class="literal">mysqlnd.net_cmd_buffer_size</code> bytes para casi todas las conexiones,
      entonces debería aumentar este tamaño por omisión para evitar las reasignaciones.
     </span>
     <span class="simpara">
      El tamaño por omisión del buffer es de 4096 bytes.
     </span>
     <span class="simpara">
      El valor también puede ser cambiado mediante <code class="literal">mysqli_options(link,
      MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size)</code>.
     </span>
    </dd>
   
   
    <dt id="ini.mysqlnd.net-read-buffer-size">
     <code class="parameter">mysqlnd.net_read_buffer_size</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <span class="simpara">
      Tamaño máximo del segmento en lectura al leer el cuerpo de un paquete de orden MySQL. El protocolo servidor de MySQL encapsula todas
      sus órdenes en paquetes. Los paquetes consisten en un encabezado corto
      seguido de un cuerpo que contiene las informaciones. El tamaño del cuerpo está codificado en
      el encabezado. <code class="literal">mysqlnd</code> lee el cuerpo en forma de segmentos
      de <code class="literal">MIN(header.size, mysqlnd.net_read_buffer_size)</code>
      bytes. Si el cuerpo de un paquete es más grande que
      <code class="literal">mysqlnd.net_read_buffer_size</code> bytes,
      <code class="literal">mysqlnd</code> debe entonces llamar a <code class="literal">read()</code>
      varias veces.
     </span>
     <span class="simpara">
      El valor también puede ser cambiado mediante <code class="literal">mysqli_options(link,
      MYSQLI_OPT_NET_READ_BUFFER_SIZE, size)</code>.
     </span>
    </dd>
   
   
   <dt id="ini.mysqlnd.sha256-server-public-key">
     <code class="parameter">mysqlnd.sha256_server_public_key</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <span class="simpara">
      Relacionado con el plugin de autenticación SHA-256.
      Fichero que contiene la clave pública RSA en el servidor MySQL.
     </span>
     <span class="simpara">
      Los clientes pueden omitir definir una clave pública RSA y especificar
      la clave mediante la directiva de configuración PHP, o bien, definir la clave
      en el momento de la ejecución utilizando la función <span class="function"><a href="mysqli.options.php" class="function">mysqli_options()</a></span>.
      Si ningún fichero de clave pública RSA es proporcionado por el cliente, entonces la clave
      será intercambiada conforme al procedimiento del plugin de autenticación estándar
      SHA-256.
     </span>
    </dd>
   
  
   <dt id="ini.mysqlnd.trace-alloc">
    <code class="parameter">mysqlnd.trace_alloc</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
    </span>
   </dd>
  
  
   <dt id="ini.mysqlnd.fetch_data_copy">
    <code class="parameter">mysqlnd.fetch_data_copy</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     Obliga a copiar los juegos de resultados desde los buffers internos hacia
     variables PHP en lugar de utilizar el mecanismo por omisión de referencia
     y copia al escribir. Consulte las,
     <a href="mysqlnd.memory.php" class="link">notas de implementación sobre la gestión de memoria</a>
     para más detalles.
    </span>
    <span class="simpara">
     Copiar los juegos de resultados en lugar de tener variables PHP que los referencian permite liberar más pronto la memoria ocupada por las variables PHP. Dependiendo del código de la API cliente, las consultas actuales y el tamaño de sus juegos de resultados, esto puede reducir la huella de memoria de mysqlnd.
    </span>
    <span class="simpara">
      No activar con PDO_MySQL. PDO_MySQL no soporta aún este modo.
    </span>
    <blockquote class="note"><p><strong class="note">Nota</strong>: 
     <span class="simpara">Eliminado a partir de PHP 8.1.0</span>
    </p></blockquote>
   </dd>
  
  </dl>

</div>
<?php manual_footer($setup); ?>