システム サービスが systemd によって管理されている場合、systemd デーモンはプロセスの PID ファイルの場所を認識して、プロセスを開始/停止/再起動する必要があります。 systemd をサポートするシステムでは、「override.conf 」は両方の「PIDFile」を指定するために使用されます 」および「ExecStart 」と PID ファイルの場所。 MySQL オプション ファイル (my.cnf) 内のプロセス ID ファイルの設定は無視されます。
この投稿では、同じサーバー上で複数の MySQL インスタンスを管理するために個別の「override.conf」ファイルを作成する必要がある場合について説明します。次の構成ファイルの例では、「Server1」と「Server2」という名前の 2 つの MySQL インスタンスが単一の CentOS/RHEL 7 マシンで実行されていると想定しています。
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
これら 2 つのインスタンスの「override.conf」を作成する手順:
1. 既存の実行中の MySQL インスタンスを停止します。
2. インスタンス名を指定して新しいフォルダを作成します:
$ mkdir /etc/systemd/system/mysqld@[instance-name].service.d注意 :インスタンス名は、構成ファイルで指定されたものと同じである必要があります。
$ mkdir /etc/systemd/system/[email protected] $ mkdir /etc/systemd/system/[email protected]
3. 「override.conf」を作成します:
たとえば、「server1」という名前の
$ cd /etc/systemd/system/[email protected] $ touch override.conf
次の行を 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
たとえば、「server2」という名前の
$ cd /etc/systemd/system/[email protected] touch override.conf
次の行を 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. systemd 構成をリロードして、構成の変更を適用します。
# systemctl daemon-reload
5. 構成された各インスタンスを起動します:
# systemctl start mysqld@server1 # systemctl start mysqld@server2