使用 systemd 配置多个 MySQL 8.0 实例
注意:因为systemd能够在安装了systemd支持的平台上管理多个MySQL实例, 所以mysqld_multi和 mysqld_multi.server是不必要的,并且没有安装。
要使用多实例功能,请修改 my.cnf选项文件以包括每个实例的关键选项配置。这些文件位置是典型的:
在配置文件添加一下内容 /etc/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
systemd使用如下命令启动服务器:
mysqld --defaults-group-suffix=@%I ...
其结果是,[server], [mysqld],和 [mysqld@01]选项组被读取并用于服务的该实例。
参考文档:使用systemd管理MySQL服务器
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341