这些函数的行为受 php.ini 中的设置影响。
名字 | 默认 | 可修改范围 | 更新日志 |
---|---|---|---|
mysqlnd_ms.enable | 0 | PHP_INI_SYSTEM | |
mysqlnd_ms.force_config_usage | 0 | PHP_INI_SYSTEM | |
mysqlnd_ms.ini_file | "" | PHP_INI_SYSTEM | |
mysqlnd_ms.config_file | "" | PHP_INI_SYSTEM | |
mysqlnd_ms.collect_statistics | 0 | PHP_INI_SYSTEM | |
mysqlnd_ms.multi_master | 0 | PHP_INI_SYSTEM | |
mysqlnd_ms.disable_rw_split | 0 | PHP_INI_SYSTEM |
这是配置指令的简短说明。
mysqlnd_ms.enable
integer
mysqlnd_ms.force_config_usage
integer
如果启用,插件会在每次尝试 MySQL 连接的时候通过配置文件检查服务器参数。如果存在问题, 连接将被阻塞。
这个参数对于运行中的系统没有什么用处,用于调试配置文件。配置文件的作用分为两个阶段。
首先是 PHP 开始接收 WEB 请求时执行,这时插件会读取并且解析配置文件,在这个较早的阶段
中错误信息可能被陷入循环而不会展现给用户。因此缓存这些错误,并且在 MySQL 连接建立的
时候展现给用户。默认情况下,启动时被缓存的错误会产生一个 E_WARNING
级别的错误。如果设定了 force_config_usage
参数,错误类型会变为
E_RECOVERABLE_ERROR
级别。
可以参考 configuration file debugging notes 说明。
mysqlnd_ms.ini_file
string
从 1.4.0 版本已经作废,被 mysqlnd_ms.config_file
替代,
指定插件配置文件。
mysqlnd_ms.config_file
string
插件的配置文件名称,mysqlnd_ms.ini_file
从 1.4.0 版本作废。
mysqlnd_ms.collect_statistics
integer
启动或者禁用统计信息手机,考虑到性能问题默认是禁用的。统计信息可以使用 mysqlnd_ms_get_stats() 获取。
mysqlnd_ms.multi_master
integer
是否启动 MySQL multi master 集群,可以参考 supported clusters。
mysqlnd_ms.disable_rw_split
integer
启动还是禁用读写分离。
控制负载均衡和连接切换是否会基于读写分离。如果禁用读写分离,只有 master 列表 中的服务器会被用于执行语句,所有 slave 列表中的服务器会被忽略。
SQL hint 中 MYSQLND_MS_USE_SLAVE
不会被识别,语句还是会被
发送个 master 执行。
禁用读写分离会影响 mysqlnd_ms_query_is_select() 的返回值, 函数将不会再返回在 slave 运行的返回值。
Note: Multiple master servers
设置
mysqlnd_ms.multi_master=1
将允许插件使用多台 master 服务器,否则 master 列表中只能有一个服务器。可以参考 supported clusters 中的说明