La mayoría de las personas ejecutan un único servidor MySQL en una máquina designada, pero hay situaciones en las que ejecutar varios servidores es beneficioso: puede probar nuevas versiones del servidor con el servidor de producción en ejecución. En este caso, se ejecutará un servidor diferente.
El sistema operativo normalmente impone un límite de proceso general en la cantidad de descriptores de archivos abiertos. Si su sistema tiene dificultades para aumentar el límite, ejecutar varios servidores es una solución alternativa (por ejemplo, aumentar el límite puede requerir recompilar el kernel y, si la máquina está fuera de su jurisdicción, es posible que no pueda hacerlo todavía). En este escenario, es posible que esté ejecutando varias instancias del mismo servidor.
Los servicios de Internet suelen proporcionar a los clientes su propia instalación de MySQL, que requiere un servidor independiente. En este caso, puede ejecutar varias instancias del mismo servidor o servidores diferentes si diferentes clientes requieren diferentes versiones de MySQL.
Por supuesto, ejecutar varios servidores simultáneamente es más complicado que ejecutar solo uno. Si planea instalar varias versiones, no puede instalarlas todas en la misma ubicación. Cuando un servidor se está ejecutando, ciertos parámetros deben ser únicos para cada servidor. Algunos de estos parámetros incluyen dónde está instalado el servidor: el nombre de la ruta al directorio de datos, el puerto TCP/IP y el nombre de la ruta del socket del dominio UNIX, y la cuenta UNIX utilizada para ejecutar múltiples servidores (si no se ejecutan todos bajo la misma cuenta de servidor). Si decide ejecutar varios servidores, debe mantener una buena descripción de los parámetros que está utilizando para no perder la cuenta de sus ejecuciones.
Configurar e instalar múltiples servidores
Si planea ejecutar diferentes versiones del servidor en lugar de varias instancias del mismo servidor, debe instalarlas en diferentes ubicaciones. Si instala paquetes de distribución binarios (no RPM), se instalarán en el nombre del directorio que contiene el número de versión. Si realiza la instalación desde una distribución fuente, la forma más sencilla de mantener las diferentes distribuciones separadas es utilizar la opción --with-prefix al ejecutar configure durante cada versión de la instalación de MySQL. Esto dará como resultado una instalación en un directorio separado que se puede vincular al número de versión de la distribución. Por ejemplo, puede configurar un paquete de distribución MySQL de la siguiente manera, donde versión es el número de versión de MySQL:
% ./configure ..with-prefix=/usr/local/mysql-version
La opción con prefijo también determinará el directorio de datos único del servidor. Puede agregar opciones para configurar otros valores específicos del servidor, como el puerto TCP/IP y el nombre de ruta del socket (--with-tcp-port y --with-unix-socket).
Si planea ejecutar varias instancias del mismo servidor, deberá especificar cualquier opción específica del servidor en tiempo de ejecución.
Proceso de inicio de múltiples servidores
Iniciar varios servidores es más complicado que usar un solo servidor porque tanto safe_mysqld como mysql.server funcionan bien en un solo servidor. El autor recomienda que estudie detenidamente safe_mysqld y lo utilice como base del proceso de inicio, a menos que utilice una copia más granular modificada según sus necesidades.
Una cuestión que debe abordarse es cómo especificar opciones en el archivo de opciones. Con varios servidores, no puede usar /etc/my.cnf para configuraciones que cambian según el servidor total; solo use este archivo para configuraciones que sean iguales para todos los servidores. Si cada servidor tiene una ubicación de directorio de datos diferente, puede especificar parámetros específicos del servidor en el archivo my.cnf para el directorio de datos de cada servidor. En otras palabras, use /etc/my.cnf para configuraciones que utilizan todos los servidores, y DATA DIR/my.cnf para configuraciones que son específicas del servidor, donde DATADIR cambia para cada servidor.
Otra forma de especificar las opciones del servidor es usar - - defa ul ts - file =path_name como la primera opción en la línea de comando para indicarle al servidor que lea las opciones del archivo especificado por path_name. De esta manera, las opciones del servidor en ese archivo se pueden colocar de forma exclusiva en ese servidor y luego decirle al servidor que lea el archivo al iniciar. Tenga en cuenta que si se especifica esta opción, no se utilizará ninguno de los archivos de opciones habituales (como /etc/my.cnf).