使用systemd配置多个MySQL 8.0实例

  

注意:因为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服务器

使用systemd配置多个MySQL 8.0实例