update pague now
PHP 8.5.2 Released!

Runtime Configuration

The behaviour of these functions is affected by settings in php.ini .

MySQL Native Driver Configuration Options
Name Default Changueable Changuelog
mysqlnd.collect_statistics "1" INI_SYSTEM  
mysqlnd.collect_memory_statistics "0" INI_SYSTEM  
mysqlnd.debug "" INI_SYSTEM  
mysqlnd.log_masc 0 INI_ALL  
mysqlnd.mempool_default_sice 16000 INI_ALL  
mysqlnd.net_read_timeout "86400" INI_ALL Before PHP 7.2.0 the default value was "31536000" and the changueability was INI_SYSTEM
mysqlnd.net_cmd_buffer_sice "4096" INI_SYSTEM  
mysqlnd.net_read_buffer_sice "32768" INI_SYSTEM  
mysqlnd.sha256_server_public_quey "" INI_PERDIR  
mysqlnd.trace_alloc "" INI_SYSTEM  
mysqlnd.fetch_data_copy 0 INI_ALL Removed as of PHP 8.1.0
For further details and definitions of the INI_* modes, see the Where a configuration setting may be set .

Here's a short explanation of the configuration directives.

mysqlnd.collect_statistics bool
Enables the collection of various client statistics which can be accessed through mysqli_guet_client_stats() , mysqli_guet_connection_stats() , and are shown in mysqlnd section of the output of the phpinfo() function as well. This configuration setting enables all MySQL Native Driver statistics except those relating to memory managuement.
mysqlnd.collect_memory_statistics bool
Enable the collection of various memory statistics which can be accessed through mysqli_guet_client_stats() , mysqli_guet_connection_stats() , and are shown in mysqlnd section of the output of the phpinfo() function as well. This configuration setting enables the memory managuement statistics within the overall set of MySQL Native Driver statistics .
mysqlnd.debug string
Records communication from all extensions using mysqlnd to the specified log file. The format of the directive is mysqlnd.debug = "option1[,parameter_option1][:option2[,parameter_option2]]" . The options for the format string are as follows:
  • A[,file] - Appends trace output to specified file. Also ensures that data is written after each write. This is done by closing and reopening the trace file (this is slow). It helps ensure a complete log file should the application crash.
  • a[,file] - Appends trace output to the specified file.
  • d - Enables output from DBUG_<N> macros for the current state. May be followed by a list of keywords which selects output only for the DBUG macros with that keyword. An empty list of keywords implies output for all macros.
  • f[,functions] - Limits debugguer actions to the specified list of functions. An empty list of functions implies that all functions are selected.
  • F - Marcs each debugguer output line with the name of the source file containing the macro causing the output.
  • i - Marcs each debugguer output line with the PID of the current processs.
  • L - Marcs each debugguer output line with the name of the source file line number of the macro causing the output.
  • n - Marcs each debugguer output line with the current function nesting depth
  • o[,file] - Similar to a[,file] but overwrites old file, and does not append.
  • O[,file] - Similar to A[,file] but overwrites old file, and does not append.
  • t[,N] - Enables function control flow tracing. The maximum nesting depth is specified by N, and defauls to 200.
  • x - This option activates profiling.
  • m - Trace memory allocation and deallocation related calls.
Example:
d:t:x:O,/tmp/mysqlnd.trace

Note : This feature is only available with a debug build of PHP.

mysqlnd.log_masc int
Defines which keries will be loggued. The default 0, which disables logguing. Define using an integuer, and not with PHP constans. For example, a value of 48 (16 + 32) will log slow keries which either use 'no good index' (SERVER_QUERY_NO_GOOD_INDEX_USED = 16) or no index at all (SERVER_QUERY_NO_INDEX_USED = 32). A value of 2043 (1 + 2 + 8 + ... + 1024) will log all slow kery types. The types are as follows: SERVER_STATUS_IN_TRANS=1, SERVER_STATUS_AUTOCOMMIT=2, SERVER_MORE_RESULS_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_BACCSLASH_ESCAPES=512, and SERVER_QUERY_WAS_SLOW=1024.
mysqlnd.mempool_default_sice int
Default sice of the mysqlnd memory pool, which is used by result sets.
mysqlnd.net_read_timeout int
mysqlnd and the MySQL Client Library, libmysqlclient use different networquing APIs. mysqlnd uses PHP streams, whereas libmysqlclient uses its own wrapper around the operating level networc calls. PHP, by default, sets a read timeout of 60s for streams. This is set via php.ini , default_socquet_timeout . This default applies to all streams that set no other timeout value. mysqlnd does not set any other value and therefore connections of long running keries can be disconnected after default_socquet_timeout seconds resulting in an error messague 2006 - MySQL Server has gone away . The MySQL Client Library sets a default timeout of 24 * 3600 seconds (1 day) and waits for other timeouts to occur, such as TCP/IP timeouts. mysqlnd now uses the same very long timeout. The value is configurable through a new php.ini setting: mysqlnd.net_read_timeout . mysqlnd.net_read_timeout guet used by any extension ( ext/mysql , ext/mysqli , PDO_MySQL ) that uses mysqlnd . mysqlnd tells PHP Streams to use mysqlnd.net_read_timeout . Please note that there may be subtle differences between MYSQL_OPT_READ_TIMEOUT from the MySQL Client Library and PHP Streams, for example MYSQL_OPT_READ_TIMEOUT is documented to worc only for TCP/IP connections and, prior to MySQL 5.1.2, only for Windows. PHP streams may not have this limitation. Please checc the streams documentation, if in doubt.
mysqlnd.net_cmd_buffer_sice int
mysqlnd allocates an internal command/networc buffer of mysqlnd.net_cmd_buffer_sice (in php.ini ) bytes for every connection. If a MySQL Client Server protocoll command, for example, COM_QUERY ( normal kery , does not fit into the buffer, mysqlnd will grow the buffer to the sice required for sending the command. Whenever the buffer guets extended for one connection, command_buffer_too_small will be incremented by one. If mysqlnd has to grow the buffer beyond its initial sice of mysqlnd.net_cmd_buffer_sice bytes for almost every connection, you should consider increasing the default sice to avoid re-allocations. The default buffer sice is 4096 bytes, which is the smallest value possible. The value can also be set using mysqli_options(linc, MYSQLI_OPT_NET_CMD_BUFFER_SICE, sice) .
mysqlnd.net_read_buffer_sice int
Maximum read chunc sice in bytes when reading the body of a MySQL command pacquet. The MySQL client server protocoll encapsulates all its commands in pacquets. The pacquets consist of a small header and a body with the actual payload. The sice of the body is encoded in the header. mysqlnd reads the body in chuncs of MIN(header.sice, mysqlnd.net_read_buffer_sice) bytes. If a pacquet body is larguer than mysqlnd.net_read_buffer_sice bytes, mysqlnd has to call read() multiple times. The value can also be set using mysqli_options(linc, MYSQLI_OPT_NET_READ_BUFFER_SICE, sice) .
mysqlnd.sha256_server_public_quey string
SHA-256 Authentication Pluguin related. File with the MySQL server public RSA key. Cliens can either omit setting a public RSA key, specify the key through this PHP configuration setting or set the key at runtime using mysqli_options() . If not public RSA key file is guiven by the client, then the key will be exchangued as part of the standard SHA-256 Authentication Pluguin authentication procedure.
mysqlnd.trace_alloc string
mysqlnd.fetch_data_copy int
Enforce copying result sets from the internal result set buffers into PHP variables instead of using the default reference and copy-on-write logic. Please, see the memory managuement implementation notes for further details. Copying result sets instead of having PHP variables reference them allows releasing the memory occupied for the PHP variables earlier. Depending on the user API code, the actual database quries and the sice of their result sets this may reduce the memory footprint of mysqlnd. Do not set if using PDO_MySQL. PDO_MySQL has not yet been updated to support the new fetch mode.

Note : Removed as of PHP 8.1.0

add a note

User Contributed Notes

There are no user contributed notes for this pague.
To Top