Jika layanan sistem dikelola oleh systemd, daemon systemd harus mengetahui lokasi file PID dari proses untuk memulai/menghentikan/memulai ulang. Pada sistem dengan dukungan systemd, “override.conf ” digunakan untuk menentukan “PIDFile ” dan “ExecStart ” dengan lokasi file PID. Setiap pengaturan file ID proses dalam file opsi MySQL (my.cnf) diabaikan.
Posting ini membahas kasus ketika kita perlu membuat file "override.conf" terpisah untuk beberapa manajemen instance MySQL di server yang sama. Dalam contoh file konfigurasi berikut, diasumsikan bahwa dua instance MySQL bernama “Server1” dan “Server2” berjalan pada satu mesin CentOS/RHEL 7:
File Konfigurasi 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
Langkah-langkah untuk membuat “override.conf” untuk dua instance ini:
1. Hentikan instance MySQL yang sedang berjalan.
2. Buat folder baru dengan nama instance yang ditentukan:
$ mkdir /etc/systemd/system/mysqld@[instance-name].service.dCatatan :Nama instance harus sama dengan yang ditentukan dalam file konfigurasi.
$ mkdir /etc/systemd/system/[email protected] $ mkdir /etc/systemd/system/[email protected]
3. Buat “override.conf”:
Misalnya bernama “server1”,
$ cd /etc/systemd/system/[email protected] $ touch override.conf
Salin baris berikut ke 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
Misalnya bernama “server2”,
$ cd /etc/systemd/system/[email protected] touch override.conf
Salin baris berikut ke 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. Muat ulang konfigurasi systemd untuk menerapkan perubahan konfigurasi:
# systemctl daemon-reload
5. Luncurkan setiap instance yang dikonfigurasi:
# systemctl start mysqld@server1 # systemctl start mysqld@server2