觉悟吧,少年!

——认真编码,认真生活!

CentOs7改造mysql服务

背景

CentOS7版本下的service命令都被重定向到systemctl这个命令了,PerconaMySQL安装完成后,会自动添加开机启动服务,而它的服务脚本文件为mysql.service,如果需要对该服务脚本进行改造,该怎么办呢?

问题

搜索MySQL的开机启动服务脚本文件,得到结果如下:

find / -name mysql.service
/etc/systemd/system/mysql.service

我希望修改该文件,于是进入目录,准备下载到本机,但是每次都下载失败,仔细观察发现它的文件名称前面有一个回形针图标,说明它是一个软链接。

分析

mysql.service,它真正的文件路径为/usr/lib/systemd/system/mysqld.service,内容如下:

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target
Alias=mysql.service

[Service]
User=mysql
Group=mysql

Type=forking

PIDFile=/var/run/mysqld/mysqld.pid

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Execute pre and post scripts as root
PermissionsStartOnly=true

# Needed to create system tables
ExecStartPre=/usr/bin/mysqld_pre_systemd

# Start main service
ExecStart=/usr/bin/numactl --cpubind=0 --membind=0 /usr/sbin/mysqld --daemonize --pid-file=
/var/run/mysqld/mysqld.pid $MYSQLD_OPTS

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 5000

Restart=on-failure

RestartPreventExitStatus=1

PrivateTmp=false

这是systemd统一的service配置文件,install标签的Alias=mysql.service说明了我们常用的service mysql 就是这个服务,它真正的服务名称是mysqld,这就可以解释为什么有些MySQL的服务名称为mysqld了。

我们编辑/etc/systemd/system/mysql.service文件,修改ExecStart配置,添加内核绑定逻辑:

ExecStart=/usr/bin/numactl –cpubind=0 –membind=0 /usr/sbin/mysqld
–daemonize –pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS

由于这里是配置,而不是直接执行的命令,所以命令名称都需要全路经,不能直接用numactl命令,否则会报错导致启动失败。这个链接文件修改之后,它真正的文件mysqld.service也自动修改了。

启示录

顺便看了一下systemd的知识,知道了它的目录为/usr/lib/systemd/system,其下有大量以service为后缀的文件,就是所有的开机启动服务文件。内容都有相同的模版,大概就明白了mysql的开机启动服务是怎么回事儿了。

其次,修改开机启动服务文件后,需要执行reload命令,才能生效。

systemctl daemon-reload
service mysql restart

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wojiushiwo945you/article/details/77304109
文章标签: mysql
个人分类: 简单东西
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭