Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Mysqlnd_ms
Имя По умолчанию Место изменения Список изменений
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 для проксирования внутренних вызовов mysqlnd C API.

mysqlnd_ms.force_config_usage integer

Если включено, плагин проверяет, соответствует ли значение параметра хоста (сервера) любого подключения к MySQL имени раздела из файла конфигурации плагина. Если нет, попытка подключения будет заблокирована.

Эта настройка полезна не только для жесткого ограничения PHP определенными серверами, но и для отладки проблем с конфигурационным файлом. Корректность конфигурационного файла проверяется на двух этапах. Первая проверка происходит при начале обработки веб-запроса PHP. В этот момент плагин читает и декадирует конфигурационный файл. Ошибки выброшенные на этом раннем этапе жизненного цикла расширения могут показываться пользователю некорректно. Поэтому плагин их забуфферизует и сможет вывести на этапе подключения к MySQL. По умолчанию, ошибки, забуферризированные на момент старта, породят ошибки уровня E_WARNING. Если force_config_usage установлена, то будет использован тип E_RECOVERABLE_ERROR.

Пожалуйста прочтите раздел замечания по отладке конфигурационного файла.

mysqlnd_ms.ini_file string

Конфигурационный файл плагина. В версии 1.4.0 эта настройка была переименована в mysqlnd_ms.config_file.

mysqlnd_ms.config_file string

Конфигурационный файл плагина. С версии 1.4.0 заменяет mysqlnd_ms.ini_file.

mysqlnd_ms.collect_statistics integer

Разрешает или запрещает сбор статистики. По умолчанию сбор статистики отключен из-за воздействия на производительность. Статистику можно получить с помощью функции mysqlnd_ms_get_stats().

mysqlnd_ms.multi_master integer

Разрешает или запрещает поддержку конфигурации MySQL с несколькими мастер-серверами (multi master). Подробнее читайте тут - поддерживаемые кластеры.

mysqlnd_ms.disable_rw_split integer

Включает или отключает встроенное разделение чтения и записи.

Определяет, будет ли использоваться распределение нагрузки и функционал ленивого соединения для разделения операций чтения и записи. Если разделение чтения и записи запрещено, то для запуска запросов будут использоваться сервера только из списка мастеров, а все подчиненные (slave) сервера будут игнорироваться.

SQL-хинты MYSQLND_MS_USE_SLAVE не будут обрабатываться. Все запросы будут переодресованы на мастер-сервера.

Запрещение разделения чтения и записи влияет на возвращаемое значение функции mysqlnd_ms_query_is_select(). Функции будет запрещено использовать подчиненные сервера.

Замечание: Сервера с несколькими мастерами (Multiple master)

Установка mysqlnd_ms.multi_master=1 позволит плагину использовать несколько мастер-серверов, вместо использования только одного, первого из списка, сервера.

Подробнее читайте тут - поддерживаемые кластеры.