La forma más sencilla de ejecutar múltiples servidores en Unix es compilarlos con diferentes puertos TCP/IP y ficheros socket Unix de forma que cada uno esté escuchando en distintas interfaces de red. Además, al compilarlos en distintos directorios base para cada instalación, automáticamente se configuran distintos directorios de datos, fichero de log, y localización del fichero PID para cada uno de los servidores.
Tenga en cuenta que un servidor 4.1.8 existente está
configurado para el puerto TCP/IP por defecto (3306) y fichero
socket Unix (/tmp/mysql.sock
). Para
configurar un nuevo servidor 5.0.7 con parámetros distintos,
use un comando configure parecido a este:
shell> ./configure --with-tcp-port=port_number
\ --with-unix-socket-path=file_name
\ --prefix=/usr/local/mysql-5.0.7
Aquí, port_number
y
file_name
deben ser distintos del
puerto TPC/IP por defecto y de la ruta del fichero socket Unix,
y el valor --prefix
debe especificar un
fichero de instalación distinto del que hay donde MySQL se ha
instalado por defecto.
Si tiene un servidor MySQL escuchando en un puerto dado, puede usar el siguiente comando para encontrar que parámetros está usando para algunas importantes variables de configuración, incluyendo el directorio base y el nombre del fichero socket Unix:
shell> mysqladmin --host=host_name
--port=port_number
variables
Con la información mostrada por este comando, puede decir los valores de las opciones que no debe usar para configurar un servidor adicional.
Tenga en cuenta que si especifica localhost
como nombre de equipo, el comportamiento por defecto de
mysqladmin es usar una conexión mediante un
fichero socket Unix en lugar de TCP/IP. A partir de MySQL 4.1 ,
puede especificar explícitamente el protocolo de conexión a
usar usando la opción --protocol={TCP | SOCKET | PIPE
| MEMORY}
.
No tiene que compilar un nuevo servidor MySQL para arrancar con un fichero socket Unix distinto o con otro puerto TCP/IP. También es posible especificar estos valores en tiempo de ejecución. Una forma de hacerlo es usando opciones por líneas de comandos:
shell> mysqld_safe --socket=file_name
--port=port_number
Para arrancar un segundo servidor, proporcione distintas
opciones para --socket
y
--port
option , e incluya la opción
--datadir=
para mysqld_safe de forma que el servidor use
un directorio de datos distinto.
path
Otra forma de conseguir un efecto similar es usar variables de entorno para inicializar el nombre de fichero socket Unix y el puerto TCP/IP:
shell> MYSQL_UNIX_PORT=/tmp/mysqld-new.sock shell> MYSQL_TCP_PORT=3307 shell> export MYSQL_UNIX_PORT MYSQL_TCP_PORT shell> mysql_install_db --user=mysql shell> mysqld_safe --datadir=/path/to/datadir &
Hay una forma rápida de arrancar un segundo servidor para hacer pruebas. Lo bueno de este método es que los cambios en las variables de entorno se aplican a cualquier programa cliente que invoque desde la misma consola. Así, las conexiones de dichos clientes se redireccionan automáticamente al segundo servidor!
Apéndice E, Variables de entorno incluye una lista de otras variables de entorno que puede usar para afectar a mysqld.
Para ejecución automática del servidor, el script de arranque que se ejecuta al arrancar debe ejecutar el siguiente comando una vez para cada servidor con la ruta apropiada del fichero de opciones para cada comando:
mysqld_safe --defaults-file=path
Cada fichero de opciones debe contener valores específicos para un servidor dado.
En Unix, el script mysqld_multi es otra forma de arrancar múltiples servidores. Consulte Sección 5.1.5, “El programa mysqld_multi para gestionar múltiples servidores MySQL”.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.