sql >> Base de Datos >  >> RDS >> Mysql

Cómo ejecutar varias instancias de MySQL en la misma máquina

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!