如果系统服务由 systemd 管理,则 systemd 守护进程应该知道进程的 PID 文件位置以启动/停止/重新启动它。
在具有 systemd 支持的系统上,“override.conf”用于指定带有 PID 文件位置的“PIDFile”和“ExecStart”。
MySQL 选项文件 (my.cnf) 中进程 ID 文件的任何设置都将被忽略。
这篇文章涵盖了我们需要为同一服务器上的多个 MySQL 实例管理创建单独的“override.conf”文件的情况。
在以下配置文件示例中,假设名为“Server1”和“Server2”的两个 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
为这两个实例创建“override.conf”的步骤:
停止任何现有的正在运行的 MySQL 实例。
创建一个指定实例名称的新文件夹:
$ mkdir /etc/systemd/system/mysqld@[instance-name].service.d
注意:实例名称应与配置文件中指定的名称相同。
$ mkdir /etc/systemd/system/mysqld@server1.service.d $ mkdir /etc/systemd/system/mysqld@server2.service.d
- 创建“override.conf”:
例如名为“server1”,
$ cd /etc/systemd/system/mysqld@server1.service.d $ 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/mysqld@server2.service.d 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
- 重新加载 systemd 配置以应用配置更改:
# systemctl daemon-reload
- 启动每个配置的实例:
# systemctl start mysqld@server1 # systemctl start mysqld@server2
日期:2020-09-17 00:13:23 来源:oir作者:oir