El complemento está implementado como una extensión de PHP. Vea también las instrucciones de instalación para instalar la extenxión » PECL/mysqlnd_ms.
Compile o configure la extensión (API) de MySQL para PHP (mysqli, PDO_MYSQL, mysql) que planee usar con soporte para la biblioteca mysqlnd. PECL/mysqlnd_ms es un complemento para la biblioteca mysqlnd. Para utilizar el complemento con cualqier extensión de MySQL para PHP, la extensión ha de utilizar la biblioteca mysqlnd.
Después carque la extensión en PHP y active el complemento en el fichero de confuguración de PHP con la directiva de configuración llamada mysqlnd_ms.enable.
Ejemplo #1 Habilitar el complemento (php.ini)
mysqlnd_ms.enable=1 mysqlnd_ms.config_file=/ruta/al/complemento_mysqlnd_ms.ini
El complemento utiliza su propio fichero de configuración. Use la directiva de configuración de PHP mysqlnd_ms.config_file para establecer la ruta completa al fichero de configuración específico del complemento. Este fichero debe ser legible por PHP (p.ej., el usuario del servidor web). Por favor, observe que la directiva de configuración mysqlnd_ms.config_file sustituye a mysqlnd_ms.ini_file desde la versión 1.4.0. Es un error común usar la directiva de configuración antigua, la cual ya no está disponible.
Cree un fichero de configuración específico del complemento. Guarde el fichero en la ruta establecida por la directiva de configuración de PHP mysqlnd_ms.config_file.
El fichero de configuración del complemento
está basado en JSON. Está dividido en una o más secciones.
Cada sección tiene un nombre, por ejemplo, myapp
. Cada sección
contiene su propio conjunto de ajustes de configuración.
Una sección debe incluir, como mínimo, el servidor maestro de replicación MySQL y establecer una lista de esclavos. El complemento admite únicamente un servidor maestro por sección. La configuración de replicación MySQL de múltiples maestros aún no está totalemnte soportada. Use el ajuste de configuración master para establecer el nombre del anfitrión y el puerto o socket del servidor maestro de MySQL. Los servidores esclavos de MySQL se configuran usando la palabra clave slave.
Ejemplo #2 Fichero de configuración mínima específico del complemento (mysqlnd_ms_plugin.ini)
{ "myapp": { "master": { "master_0": { "host": "localhost" } }, "slave": [ ] } }
Es necesario configurar una lista de servidores esclavos de MySQL, aunque puede contener una lista vacía. Se recomienda que siempre se configure al menos un servidor esclavo.
Las listas de servidores pueden usar la
sintaxis anónima o no anónima. Las listas no
anónimas incluyen sobrenombres para los servidores, tales como master_0
para el maestro del ejemplo de arriba. Esta guía rápida utiliza la
sintaxis no anónima más prolija.
Ejemplo #3 Configuración mínima recomendada específica del complemento (mysqlnd_ms_plugin.ini)
{ "myapp": { "master": { "master_0": { "host": "localhost", "socket": "\/tmp\/mysql.sock" } }, "slave": { "slave_0": { "host": "192.168.2.27", "port": "3306" } } } }
Si al menos existen dos servidores en total, el complemento puede empezar a equilibrar la carga e intercambiar conexiones. El intercambio de conexiones no siempre es transparente y puede ocasionar problemas en ciertos casos. Las secciones de referencia sobre intercambio y agrupación de conexiones, manejo de transacciones, tolerancia a fallos equilibrado de carga y división de lectura-escritura proporcionan más detalles. Los problemas potenciales están descritos más tarde en esta guía.
Es responsabilidad de la aplicación manejar los problemas potenciales causados por el intercambio de conexiones, configurando un servidor maestro con al menos un servidor esclavo, lo cual permite el intercambio para trabajar con los problemas relacionados que se puedan encontrar.
Los servidores maestros y esclavos de MySQL que se configuren no necesitan ser parte de la configuración de replicación MySQL. Para realizar pruebas, se puede usar un único servidor MySQL y hacerle saber al complemento que se trata de un servidor maestro y esclavo, como se muestra abajo. Esto podría ser de ayuda para detectar muchos problemas potenciales con los intercambios de conexión. Sin embargo, tal configuración no será propensa a los problemas causados por la demora de replicación.
Ejemplo #4 Usar un servidor como maestro y esclavo (¡solamente para pruebas!)
{ "myapp": { "master": { "master_0": { "host": "localhost", "socket": "\/tmp\/mysql.sock" } }, "slave": { "slave_0": { "host": "127.0.0.1", "port": "3306" } } } }
El complemento intenta notificarle de configuraciones inválidas. Desde 1.5.0, lanzará una advertencia durante el arranque de PHP si no se puede leer el fichero de configuración, está vacío, o falló el análisis de JSON. Según la configuración de PHP, estos errores podrían aparecer únicamente en algunos ficheros log. Se hace una validación extra cuando se establece una conexión y se buscan secciones válidas en el fichero de configuración. Establecer mysqlnd_ms.force_config_usage podría ayudar a depurar una configuración incorrecta. Véanse también las notas de depuración del fichero de configuración.