Pokud jsou systémové služby spravovány systémem systemd, démon systemd by měl znát umístění souboru PID procesu, aby jej mohl spustit/zastavit/restartovat. V systému s podporou systemd „override.conf ” se používá k určení jak „soubor PIDF “ a „ExecStart ” s umístěním souboru PID. Jakékoli nastavení souboru ID procesu v souboru voleb MySQL (my.cnf) je ignorováno.
Tento příspěvek pokrývá případ, kdy potřebujeme vytvořit samostatné soubory „override.conf“ pro správu více instancí MySQL na stejném serveru. V následujícím příkladu konfiguračního souboru se předpokládá, že dvě instance MySQL s názvem „Server1“ a „Server2“ běží na jednom počítači CentOS/RHEL 7:
Konfigurační soubor 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
Postup vytvoření souboru „override.conf“ pro tyto dvě instance:
1. Zastavte jakoukoli existující spuštěnou instanci MySQL.
2. Vytvořte novou složku se zadaným názvem instance:
$ mkdir /etc/systemd/system/mysqld@[instance-name].service.dPoznámka :Název instance by měl být stejný jako název zadaný v konfiguračním souboru.
$ mkdir /etc/systemd/system/[email protected] $ mkdir /etc/systemd/system/[email protected]
3. Vytvořte „override.conf“:
Například s názvem „server1“,
$ cd /etc/systemd/system/[email protected] $ touch override.conf
Zkopírujte následující řádky do 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
Například s názvem „server2“,
$ cd /etc/systemd/system/[email protected] touch override.conf
Zkopírujte následující řádky do 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. Znovu načtěte konfiguraci systemd, abyste použili změny konfigurace:
# systemctl daemon-reload
5. Spusťte každou z nakonfigurovaných instancí:
# systemctl start mysqld@server1 # systemctl start mysqld@server2