注意:因为systemd能够在安装了systemd支持的平台上管理多个MySQL实例, 所以MysqLd_multi和 MysqLd_multi.server是不必要的,并且没有安装。
要使用多实例功能,请修改 my.cnf选项文件以包括每个实例的关键选项配置。这些文件位置是典型的:
[MysqLd@01]
datadir=/var/lib/MysqL01
socket=/var/lib/MysqL01/MysqL.sock
port=3307
MysqLx_port=33070
log-error=/var/log/MysqLd01.log
[MysqLd@02]
datadir=/var/lib/MysqL02
socket=/var/lib/MysqL02/MysqL.sock
port=3308
MysqLx_port=33080
log-error=/var/log/MysqLd02.log
此处显示的副本名称@用作分隔符,因为这是systemd支持的唯一分隔符。
创建数据目录
mkdir /var/lib/MysqL01
mkdir /var/lib/MysqL02
chown MysqL.MysqL /var/lib/MysqL01
chown MysqL.MysqL /var/lib/MysqL02
然后,实例由常规systemd命令管理,例如:
systemctl start MysqLd@01
systemctl start MysqLd@02
要使实例能够在引导时运行,请执行以下操作:
systemctl enable MysqLd@01
systemctl enable MysqLd@02
systemctl status 'MysqLd@replica*'
为了管理同一台机器上的多个MysqL实例,systemd自动使用不同的单元文件:
MysqLd@.service而不是 MysqLd.service(RPM平台)
在单元文件,%I和 %i引用之后经过在参数@标记,并用于管理该特定的实例。对于这样的命令:
systemctl start MysqLd@01
MysqLd --defaults-group-suffix=@%I ...
其结果是,[server], [MysqLd],和 [MysqLd@01]选项组被读取并用于服务的该实例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。