systemd mysql_Systemd管理下的MySQL Server

本文介绍了在systemd管理下如何操作MySQL Server,包括通过systemctl管理服务、设置开机自启动、修改systemd配置文件以调整参数,以及在systemd环境下配置多实例MySQL的方法。
摘要由CSDN通过智能技术生成

mysql 5.7

官网的

rpm

包,编译时指定了

-DWITH_SYSTEMD=bool

参数,启用

systemd

管理,并且不会安装

mysqld_safe

System V

初始化的脚本

如果还想使用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.

LimitNO

FILE

,

设定mysql

server

文件描述符的有效数量,而不是

mysqld_safe

--open-files-limit

3.

LimitCore

,

设定最大内核文件大小,

而不是

mysqld_safe

--core-file-size

4.

Nice

,

设定

mysql server

排程的优先级,而不是

--nice

option for

mysqld_saf

E

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

的文件引入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值