怎么使用Systemd管理下的MySQL Server

62次阅读
没有评论

共计 3129 个字符,预计需要花费 8 分钟才能阅读完成。

本篇内容主要讲解“怎么使用 Systemd 管理下的 MySQL Server”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“怎么使用 Systemd 管理下的 MySQL Server”吧!

mysql 5.7
官网的 rpm 包,编译时指定了 -DWITH_SYSTEMD=bool
参数,启用 systemd 管理,并且不会安装 mysqld_safe 和 System V
初始化的脚本

-DWITH_SYSTEMD=1

如果还想使用 mysqld_safe 两种方法:

1. 下载源码包编译;

  select
version : 5.7.23

  select operating system: Source Code

  select OS Version: Gerneric Linux (Architecture Independent)

  mysql-boost-5.7.23.tar.gz

2. 下载 tar 文件或压缩后的 tar 文件(安装后的文件,解压后可直接启动)

  select
version : 5.7.23

  select operating system: Red Hat Enterprise Linux / Oracle Linux

  select OS Version: Red Hat Enterprise Linux 7/ Oracle Linux 7(x86,64-bit)

  mysql-5.7.23-el7-x86_64.tar.gz  / mysql-5.7.23-el7-x86_64.tar

概览 systemd:

systemctl {start|stop|restart|status} mysqld

兼容的 System V 的指令如下

service mysqld {start|stop|restart|status}

# 设置 mysql 开机自启动

systemctl enable mysqld

配置 systemd
for mysql

增加或改变 systemd for mysqld 的选项,方法如下:

使用局部 (localized) 的 systemd 配置文件

为 MySQL
server
进程,设定 systemd
环境变量

设定 MYSQLD_OPTS
systemd 变量

1)使用局部 systemd 配置文件

 
建立目录:/etc/systemd/system/mysqld.service.d 

 
在目录里建立一个包含 [Service] 的文件,如 override.conf 

[Service]
LimitNOFILE=max_open_files
PIDFile=/path/to/pid/file
Nice=nice_level
LimitCore=core_file_limit
Environment= LD_PRELOAD=/path/to/malloc/library
Environment= TZ=time_zone_setting

  新版本的 systemd 支持如下命令编辑

systemctl edit mysqld

  编辑完后,别忘重新加载 systemd 配置,并重启 mysqld 服务

systemctl daemon-reload

systemctl restart mysqld

 
在 systemd 中,必须使用
override.conf
配置文件来获取参数,而不是以前 mysql
option file(/etc/my.cnf)中 [mysqld] 和[mysqld_safe]选项。它不会去读这两个选项

For additional information about using systemd rather than mysqld_safe, see Migrating from mysqld_safe to systemd.

 
override.conf 可以设定如下参数:

1.PIDFILE
指定 pid 文件

2.LimitNOFILE,
设定 mysql
server 文件描述符的有效数量,而不是 mysqld_safe
–open-files-limit 

3.
LimitCore,
设定最大内核文件大小,
而不是 mysqld_safe
的  
–core-file-size

4.Nice,
设定 mysql server 排程的优先级,而不是
–nice option for mysqld_safE

5.LD_PRELOAD, 
指定 mysql server
内存分配库
,Environment= LD_PRELOAD=/path/to/malloc/library

6.TZ
,设定缺省的时区
Environment= TZ=time_zone_setting

多种方法指定 mysql
server
的环境变量,在 systemd 管理下。

  1. 在 override.conf
配置文件,使用
Environment
行指定,如:Environment= TZ=xx

  2.
/etc/sysconfig/mysql
中指定变量值

 
LD_PRELOAD=/path/to/malloc/library

 
TZ=time_zone_setting

 
  修改过后记得重启 mysql

 
systemctl restart mysqld

3.set / unset
systemd 变量:
MYSQLD_OPTS

 
systemctl set-environment MYSQLD_OPTS= –general_log=1

  systemctl unset-environment MYSQLD_OPTS

  MYSQLD_OPTS 也可以被设定在
/etc/sysconfig/mysql 文件中

  修改过后记得重启 mysql

 
systemctl restart mysqld

注意:在 systemd 的平台上,空的数据目录,将在 mysql server 启动时,自动初始化数据。

NO_INIT=true

在 /etc/sysconfig/mysql 中指定
NO_INIT=true
来控制不要自动初始化数据库。

在 systemd 环境下配置多实例 MySQL

rpm 平台:/etc/my.cnf

如两个实例:replica01 and replica02,配置文件如下:

[mysqld@replica01]

datadir=/var/lib/mysql-replica01

socket=/var/lib/mysql-replica01/mysql.sock

port=3307

log-error=/var/log/mysqld-replica01.log

[mysqld@replica02]

datadir=/var/lib/mysql-replica02

socket=/var/lib/mysql-replica02/mysql.sock

port=3308

log-error=/var/log/mysqld-replica02.log

管理方法如下:

systemctl start mysqld@replica01

systemctl start mysqld@replica02

设置开机启动

systemctl enable mysqld@replica01

systemctl enable mysqld@replica02

支持通配符

systemctl status
mysqld@replica*

systemd 的单元文件 unit file 也是不同的

mysqld@.service rather than mysqld.service

如果想在 /etc/my.cnf.d 中分别配置每个实例,需要在 /etc/my.cnf 中增加

!includedir /etc/my.cnf.d
把 my.cnf.d 的文件引入。

到此,相信大家对“怎么使用 Systemd 管理下的 MySQL Server”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计3129字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)