Wenn die Systemdienste von systemd verwaltet werden, sollte der systemd-Daemon den Speicherort der PID-Datei des Prozesses kennen, um ihn zu starten/stoppen/neu zu starten. Auf einem System mit systemd-Unterstützung wird „override.conf “ wird verwendet, um sowohl „PIDFile “ und „ExecStart “ mit dem Speicherort der PID-Datei. Alle Einstellungen der Prozess-ID-Datei in der MySQL-Optionsdatei (my.cnf) werden ignoriert.
Dieser Beitrag behandelt den Fall, in dem wir separate „override.conf“-Dateien für die Verwaltung mehrerer MySQL-Instanzen auf demselben Server erstellen müssen. Im folgenden Konfigurationsdateibeispiel wird davon ausgegangen, dass zwei MySQL-Instanzen namens „Server1“ und „Server2“ auf einem einzigen CentOS/RHEL 7-Computer ausgeführt werden:
MySQL-Konfigurationsdatei (/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
Schritte zum Erstellen von „override.conf“ für diese beiden Instanzen:
1. Beenden Sie alle vorhandenen laufenden MySQL-Instanzen.
2. Erstellen Sie einen neuen Ordner mit dem angegebenen Instanznamen:
$ mkdir /etc/systemd/system/mysqld@[instance-name].service.dHinweis :Der Instanzname sollte mit dem in der Konfigurationsdatei angegebenen identisch sein.
$ mkdir /etc/systemd/system/[email protected] $ mkdir /etc/systemd/system/[email protected]
3. Erstellen Sie „override.conf“:
Zum Beispiel mit dem Namen „server1“,
$ cd /etc/systemd/system/[email protected] $ touch override.conf
Kopieren Sie die folgenden Zeilen 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
Zum Beispiel mit dem Namen „server2“,
$ cd /etc/systemd/system/[email protected] touch override.conf
Kopieren Sie die folgenden Zeilen 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. Laden Sie die systemd-Konfiguration neu, um die Konfigurationsänderungen zu übernehmen:
# systemctl daemon-reload
5. Starten Sie jede der konfigurierten Instanzen:
# systemctl start mysqld@server1 # systemctl start mysqld@server2