Si los servicios del sistema son administrados por systemd, el demonio systemd debe conocer la ubicación del archivo PID del proceso para iniciarlo/detenerlo/reiniciarlo. En un sistema compatible con systemd, “override.conf ” se usa para especificar tanto “PIDFile ” y “ExecStart ” con la ubicación del archivo PID. Se ignora cualquier configuración del archivo de ID de proceso en el archivo de opciones de MySQL (my.cnf).
Esta publicación cubre el caso cuando necesitamos crear archivos "override.conf" separados para la administración de múltiples instancias de MySQL en el mismo servidor. En el siguiente ejemplo de archivo de configuración, se supone que dos instancias de MySQL denominadas "Servidor1" y "Servidor2" se ejecutan en una sola máquina CentOS/RHEL 7:
Archivo de configuración de MySQL (/etc/my.cnf):
[mysqld@server1] server_id = 1 port = 3307 datadir = /home/mysql57/data socket = /home/mysql57/data/mysql_server1.sock log-error = /home/mysql57/data/mysql_server1.err [mysqld@server2] server_id = 2 port = 3308 datadir = /var/lib/mysql socket = /var/lib/mysql/mysql_server2.sock log-error = /var/lib/mysql/mysql_server2.err
Pasos para crear "override.conf" para estas dos instancias:
1. Detenga cualquier instancia de MySQL en ejecución existente.
2. Cree una nueva carpeta con el nombre de instancia especificado:
$ mkdir /etc/systemd/system/mysqld@[instance-name].service.dNota :El nombre de la instancia debe ser el mismo que el especificado en el archivo de configuración.
$ mkdir /etc/systemd/system/[email protected] $ mkdir /etc/systemd/system/[email protected]
3. Cree “override.conf”:
Por ejemplo, llamado "servidor1",
$ cd /etc/systemd/system/[email protected] $ touch override.conf
Copie las siguientes líneas en override.conf:
[Service] PIDFile=/home/mysql57/data/mysql_server1.pid ExecStart= ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my.cnf --defaults-group-suffix=@server1 --daemonize --pid-file=/home/mysql57/data/mysql_server1.pid $MYSQLD_OPTS
Por ejemplo, llamado "servidor2",
$ cd /etc/systemd/system/[email protected] touch override.conf
Copie las siguientes líneas en override.conf:
[Service] PIDFile=/var/lib/mysql/mysql_server2.pid ExecStart= ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my.cnf --defaults-group-suffix=@server2 --daemonize --pid-file=/var/lib/mysql/mysql_server2.pid $MYSQLD_OPTS
4. Vuelva a cargar la configuración de systemd para aplicar los cambios de configuración:
# systemctl daemon-reload
5. Inicie cada una de las instancias configuradas:
# systemctl start mysqld@server1 # systemctl start mysqld@server2