Solo son necesarios unos pocos pasos para configurar varios servidores en un sistema. Primero, será necesario ajustar el archivo de configuración de MySQL. Será necesario ingresar un grupo separado de opciones para cada servidor. Como mínimo, a cada servidor se le debe asignar un puerto TCP/IP único y un archivo de socket diferente.
Los grupos de servidores para varios servidores en el archivo de configuración se identifican con un prefijo mysqld seguido de un sufijo numérico. Por ejemplo, el primer servidor podría estar identificado por un encabezado de grupo como [mysqld1], podría comenzar con 0 o algún otro número. El segundo servidor podría ser [mysqld2]. Los números no tienen que ser secuenciales, per se. Se pueden saltar números. Todas las opciones que se pueden dar para un grupo [mysqld] se pueden dar a cualquier servidor adicional. Esto le permite cambiar las opciones del servidor para cumplir con los requisitos especiales que pueda necesitar una base de datos. A continuación se encuentran los contenidos de un /etc/my.cnf archivo que está configurado para tres servidores.
Nota :Es excepcionalmente importante tener en cuenta que cada instancia también debe tener su propio directorio de datos. Como mínimo, a cada servidor se le debe asignar un puerto TCP/IP único y/o un archivo de socket diferente.# vi /etc/my.cnf [mysqld_multi] mysqld = /usr/local/bin/mysqld_safe [mysqld0] port = 3306 socket = /tmp/mysql.sock0 pid-file = /usr/local/mysql/server0/ user = mysql0 datadir = /usr/local/mysql/server0 [mysqld1] port = 3307 socket = /tmp/mysql.sock1 pid-file = /usr/local/mysql/server1/ user = mysql1 datadir = /usr/local/mysql/server1 [mysqld2] port = 3308 socket = /tmp/mysql.sock2 pid-file = /usr/local/mysql/server2/ user = mysql2 datadir = /usr/local/mysql/server2
Primero, observe que no hay ningún grupo etiquetado como [mysqld] . Eso confundiría las cosas. En este archivo de configuración, cada servidor usa un puerto diferente. Esto requerirá ajustes a cualquier script que acceda al servidor. Habrá que dar el puerto para que el puerto por defecto (3306 ) no se utiliza. El primer servidor de arriba usa el puerto predeterminado. En este ejemplo, se nombra un usuario de sistema de archivos independiente para cada servidor. Esto no es necesario. Sin embargo, puede ser útil para un mejor control de seguridad. Requerirá la creación de cada usuario del sistema a nivel del sistema de archivos, por supuesto.
La última opción establecida en cada grupo del archivo de configuración anterior es el directorio de datos para cada servidor. Los servidores no pueden compartir el mismo directorio de datos. Por lo tanto, esto requerirá la creación de un directorio separado en el sistema de archivos. Asegúrese de cambiar la propiedad de los directorios de datos al usuario del sistema respectivo (por ejemplo, mysql0).
Una vez que el archivo de configuración se ha configurado correctamente, se han creado los usuarios del sistema y los directorios relacionados están en su lugar, entonces se pueden iniciar los servidores. Para hacer esto fácilmente, use el mysqld_multi guion. Este script leerá el archivo de configuración de MySQL y buscará grupos de servidores siguiendo la convención de nomenclatura mencionada anteriormente. Para iniciar todos los servidores, se ingresaría lo siguiente desde la línea de comando:
$ mysqld_multi start
Esta línea iniciará una instancia separada de mysqld_safe para cada grupo de servidores enumerados en el archivo de configuración. Por cierto, para usar un archivo de configuración especial para mysqld_multi, simplemente agregue el “–config-file =archivo ” opción antes del parámetro de inicio. Para detener todos los servidores, reemplace el parámetro de inicio con detener. Para los informes de estado del servidor, utilice el parámetro de informe. Para iniciar un servidor específico, proporcione el número de identificación del servidor después del parámetro de inicio. Por ejemplo, para detener el servidor etiquetado como [mysqld2] en el archivo de configuración que se muestra anteriormente, se debe ingresar lo siguiente:
$ mysqld_multi stop 2
Se omite el prefijo mysqld. Se puede nombrar un rango de servidores dando el número del primer servidor, seguido de un guión y luego el número del último (por ejemplo, 2-5). Los servidores se pueden enumerar individualmente separando su identificador por comas (por ejemplo, 2, 4). Y se puede usar una combinación de ambos métodos (por ejemplo, 2, 4-7).
Para obtener un conjunto más extenso de ejemplos de cómo se puede construir un archivo de configuración, ingrese lo siguiente desde la línea de comando:
$ mysqld_multi --example