A veces, es posible que necesite ejecutar varias instancias de MySQL en un solo servidor. Por ejemplo, es posible que deba probar diferentes instancias de MySQL para la puesta en escena, las pruebas y la producción. En este artículo, veremos cómo ejecutar varias instancias de MySQL en la misma máquina, pero en diferentes puertos, con diferentes archivos de registro y parámetros de configuración.
Cómo ejecutar varias instancias de MySQL en la misma máquina
Estos son los pasos para ejecutar varias instancias de MySQL en la misma máquina.
1. Abra el archivo de configuración de MySQL
Por lo general, encontrará el archivo de configuración de MySQL en /etc/mysql/my.cnf . Abra la terminal y ejecute el siguiente comando para abrir el archivo de configuración de MySQL.
$ sudo vi /etc/mysql/my.cnf
2. Configurar varias instancias de MySQL
Encontrará la configuración predeterminada de MySQL algo similar a lo que se muestra a continuación.
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 datadir = /data/mysql/mysql
Copie y pegue el bloque de código anterior debajo de él en el mismo archivo. Reemplazar [mysqld] con [mysqld1] y cambie el valor del puerto a 3307. Esto hará que la nueva instancia mysqld1 ejecutar en un puerto diferente 3307 con un nombre de proceso diferente mysqld1. Del mismo modo, cambie los nombres de archivo de las variables pid-file, socket y datadir como se muestra a continuación.
Asegúrese de copiar la carpeta datadir para cada instancia a continuación. Asegúrese también de que el usuario mysql el usuario tiene permisos de acceso a la misma. Cada instancia necesita su propio directorio de datos.
[mysqld1] user = mysql pid-file = /var/run/mysqld/mysqld1.pid socket = /var/run/mysqld/mysqld1.sock port = 3307 datadir = /data/mysql/mysql1
Ahora mysqld1 se ejecutará como una instancia separada de mysqld
Del mismo modo, puede crear más instancias como se muestra a continuación
[mysqld2] user = mysql pid-file = /var/run/mysqld/mysqld2.pid socket = /var/run/mysqld/mysqld2.sock port = 3308 datadir = /data/mysql/mysql2 .... [mysqldN] user = mysql pid-file = /var/run/mysqld/mysqldN.pid socket = /var/run/mysqld/mysqldN.sock port = N datadir = /data/mysql/mysqlN
Asegúrese de proporcionar un archivo pid, un archivo de socket y un directorio de datos diferentes para cada instancia y asegúrese de que el usuario mysql ha requerido permisos de directorio porque mysql el usuario debe poder crear los archivos y directorios requeridos.
3. Administra múltiples instancias
Puede iniciar cada instancia por separado usando mysqld comando a continuación. Reemplazar mysqlN con su elección de instancia (por ejemplo, mysql1, mysql2, etc.)
mysqld --initialize --user=mysql --datadir=/home/mysql/mysqlN
Si por alguna razón, la configuración anterior no funciona para usted, copie el archivo my.cnf a /etc/my.cnf ubicación y vuelva a intentarlo. A veces, mysql no registra varias instancias configuradas en /etc/mysql/my.cnf
$ sudo cp /etc/mysql/my.cnf /etc/my.cnf
Si desea iniciar sesión en una instancia específica (por ejemplo, mysqld1) desde la línea de comandos, debe especificar la ubicación del archivo de socket con la opción -S. De lo contrario, iniciará sesión en la instancia de MySQL predeterminada.
mysql -u root -p -S /var/run/mysqld/mysqld1.sock
Con suerte, este artículo lo ayudará a configurar y administrar varias instancias de MySQL en el mismo servidor.
¿Necesita una herramienta de informes para MySQL? Ubiq facilita la visualización de datos en minutos y la supervisión en paneles en tiempo real. ¡Pruébalo hoy!