Si les services système sont gérés par systemd, le démon systemd doit connaître l'emplacement du fichier PID du processus pour le démarrer/l'arrêter/le redémarrer. Sur un système prenant en charge systemd, "override.conf ” est utilisé pour spécifier à la fois “PIDFile " et " ExecStart ” avec l'emplacement du fichier PID. Tout paramètre du fichier d'ID de processus dans le fichier d'options MySQL (my.cnf) est ignoré.
Cet article couvre le cas où nous devons créer un fichier "override.conf" séparé pour la gestion de plusieurs instances MySQL sur le même serveur. Dans l'exemple de fichier de configuration suivant, on suppose que deux instances MySQL nommées "Server1" et "Server2" s'exécutent sur une seule machine CentOS/RHEL 7 :
Fichier de configuration 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
Étapes pour créer "override.conf" pour ces deux instances :
1. Arrêtez toute instance MySQL en cours d'exécution.
2. Créez un nouveau dossier avec le nom d'instance spécifié :
$ mkdir /etc/systemd/system/mysqld@[instance-name].service.dRemarque :Le nom de l'instance doit être le même que celui spécifié dans le fichier de configuration.
$ mkdir /etc/systemd/system/[email protected] $ mkdir /etc/systemd/system/[email protected]
3. Créez "override.conf":
Par exemple nommé "serveur1",
$ cd /etc/systemd/system/[email protected] $ touch override.conf
Copiez les lignes suivantes dans 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
Par exemple nommé "serveur2",
$ cd /etc/systemd/system/[email protected] touch override.conf
Copiez les lignes suivantes dans 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. Rechargez la configuration systemd pour appliquer les modifications de configuration :
# systemctl daemon-reload
5. Lancez chacune des instances configurées :
# systemctl start mysqld@server1 # systemctl start mysqld@server2