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 usantdo la directiva de configuración llamada mysqlnd_ms.enable.
Ejemplo #1 Habilitar el complemento (php.ini)
mysqlnd_ms.enable=1 mysqlnd_ms.ini_file=/ruta/al/complemetno_mysqlnd_ms.ini
El complemento utiliza su propio fichero de configuración. Use la directiva de configuración de PHP mysqlnd_ms.ini_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).
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.ini_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" } } } }