注意:因为systemd能够在安装了systemd支持的平台上管理多个MySQL实例,所以mysqld_multi和mysqld_multi.server是不必要的,并且没有安装。
要使用多实例功能,请修选改my . cnf中所做项文件以包括每个实例的关键选项配置。这些文件位置是典型的:
在配置文件添加一下内容/etc/my.cnf
<代码> [mysqld@01] datadir=/var/lib/mysql01 套接字=/var/lib/mysql01/mysql.sock 端口=3307 mysqlx_port=33070 日志错误=/var/log/mysqld01.log (mysqld@02) datadir=/var/lib/mysql02 套接字=/var/lib/mysql02/mysql.sock 端口=3308 mysqlx_port=33080 日志错误=/var/log/mysqld02.log 代码>
此处显示的副本名称@用作分隔符,因为这是systemd支持的唯一分隔符。
创建数据目录
<代码> mkdir/var/lib/mysql01 mkdir/var/lib/mysql02 乔恩mysql。mysql/var/lib/mysql01 乔恩mysql。mysql/var/lib/mysql02 代码>
然后,实例由常规systemd命令管理,例如:
<代码> systemctl mysqld@01开始 systemctl开始mysqld@02 代码>
要使实例能够在引导时运行,请执行以下操作:
<代码> systemctl启用mysqld@01 systemctl启用mysqld@02 代码>
还支持使用通配符。例如,此命令显示所有副本实例的状态:
<代码> systemctl状态“mysqld@replica *”代码>
为了管理同一台机器上的多个MySQL实例,systemd自动使用不同的单元文件:
mysqld@。服务而不是mysqld.service (RPM平台)
在单元文件,%和%我引用之后经过在参数@标记,并用于管理该特定的实例。对于这样的命令:
<代码> systemctl开始mysqld@01 代码>
systemd使用如下命令启动服务器:
<代码> mysqld——defaults-group-suffix=@ %我…代码>
其结果是,(服务器),[mysqld]和[mysqld@01]选项组被读取并用于服务的该实例。
参考文档:使用systemd管理MySQL服务器