Se i servizi di sistema sono gestiti da systemd, il demone systemd dovrebbe essere a conoscenza della posizione del file PID del processo per avviarlo/arrestare/riavviarlo. Su un sistema con supporto systemd, "override.conf ” viene utilizzato per specificare sia “PIDFile " e "ExecStart ” con la posizione del file PID. Qualsiasi impostazione del file ID processo nel file delle opzioni MySQL (my.cnf) viene ignorata.
Questo post copre il caso in cui è necessario creare file "override.conf" separati per la gestione di più istanze MySQL sullo stesso server. Nell'esempio di file di configurazione seguente si presume che due istanze MySQL denominate "Server1" e "Server2" siano in esecuzione su una singola macchina CentOS/RHEL 7:
File di configurazione 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
Passaggi per creare "override.conf" per queste due istanze:
1. Arresta qualsiasi istanza MySQL in esecuzione esistente.
2. Crea una nuova cartella con il nome dell'istanza specificato:
$ mkdir /etc/systemd/system/mysqld@[instance-name].service.dNota :Il nome dell'istanza deve essere uguale a quello specificato nel file di configurazione.
$ mkdir /etc/systemd/system/[email protected] $ mkdir /etc/systemd/system/[email protected]
3. Crea "override.conf":
Ad esempio denominato "server1",
$ cd /etc/systemd/system/[email protected] $ touch override.conf
Copia le seguenti righe in 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
Ad esempio denominato "server2",
$ cd /etc/systemd/system/[email protected] touch override.conf
Copia le seguenti righe in 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. Ricarica la configurazione di systemd per applicare le modifiche alla configurazione:
# systemctl daemon-reload
5. Avvia ciascuna delle istanze configurate:
# systemctl start mysqld@server1 # systemctl start mysqld@server2