透过systemctl管理mysqld服务
1. 背景
CentOS 7.x 之前的版本,系统启动时,第一支呼叫的程序是 init ,然后 init 去唤起所有的系统所需要的服务,无论是本地服务还是网络服务。所有的服务启动脚本都放置于 /etc/init.d 下面,基本上都是使用 bash shell script 所写成的脚本程序。
从CentOS 7.x 以后,Red Hat 放弃了 init 启动脚本的方法,改用systemd 这个启动服务管理机制。
2.systemctl管理服务的好处
平行处理所有服务,加速开机流程
旧的init 启动脚本是【一项一项任务依序启动】的模式,因此不相依的服务也是一个一个的等待。但目前我们的硬件主机系统与操作系统几乎都支持多核心结构了,systemd可以让所有的服务同时启动,系统启动的速度变快了。
一经要求就相应的 on-demand 启动方式
System 全部就是仅有一直systemd 服务 搭配systemctl 指令来处理,无需其它的指令来支持。不想之前的启动方式还要init,chkconfig,service…等指令。此外,systemd 由于常驻内存,因此任何要求(on-demand)都可以立即处理后续的daemon启动的任务。
服务相依性的自我检查
由于systemd可以自定义服务相依性的检查,因此如果 B 服务是架构在 A服务上面的,那当你在没有启动 A 服务的情况下仅手动启动 B 服务时,systemd 会自动帮你启动A服务。这样可以免去管理员一项一项去分析的麻烦。
3.Systemd启动脚配置文件所在目录
目录 | 说明 |
/lib/system/system/ |
使用CentOS官方提供的软件安装后,默认的启动脚本配置文件都放在这里,这里的数据尽量不要修改。要修改时,请到 /etc/system/system低下修改较佳。 |
/etc/system/system/ | 管理员依据主机系统的需求所建立的执行脚本,其实这个目录有点像之前的/etc/rc.d/rc5.d/Sxx 之类的功能。执行优先顺序要比/run/system/system/ 高。 |
/run/system/system/ |
系统执行过程中所产生的服务脚本。 |
4.mysql服务
在之前的安装中,我们一般都是 通过 support-files/mysql.server (单实例)、support-files/mysqld_multi.server (多实例)来配置服务。
例如 :https://www.cnblogs.com/xuliuzai/p/10078351.html
再如:https://www.cnblogs.com/xuliuzai/p/10732833.html
其实现管理mysql服务的脚本就是 在mysql.server、 mysqld_multi.server文件中。
脚本复杂并且修改比较困难。例如,我需要配置多实例,但不想修改既有的my.cnf 配置文件,如果新实例的文件名字命名为my3307.cnf,此时再用老的方法,去修改 mysql.server 就比较麻烦。
而如果用 system就比较简单。
例如 ,定义一个测试服务为:mysql3307.service
[Unit]
Description=MySQL Server
After=network.target [Install]
WantedBy=multi-user.target [Service]
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
ExecStart=/data/mysql57/bin/mysqld --defaults-file=/etc/my3307.cnf --daemonize
LimitNOFILE = 65535
Restart=on-failure
RestartSec=3
RestartPreventExitStatus=1
PrivateTmp=false
此服务的其它的一些操作命令;
systemctl enable mysql3307.service ---设置开启自启动
systemctl start mysql3307.service ----开启此服务
systemctl stop mysql3307.service -----关闭此服务
systemctl status mysql3307.service -----查看服务状态
注意 ; (1)/data/mysql57/bin/mysqld 路径为 可执行文档所在路径;/etc/my3307.cnf 配置未见;
(2)Restart=on-failure 是决定 服务Failure 时,是否自动拉起;RestartSec=3 尝试拉起间隔。
---------部分知识参考《鸟哥的Linux私房菜-基础学习篇(第四版)》,谢谢!
透过systemctl管理mysqld服务的更多相关文章
- Linux学习-透过 systemctl 管理服务
透过 systemctl 管理单一服务 (service unit) 的启动/开机启动与观察状态 一般来说,服务的启动有两个阶段,一 个是『开机的时候设定要不要启动这个服务』, 以及『你现在要不要启动 ...
- [转帖]备忘:CentOS-7 使用systemctl 管理的服务,文件打开数上限1024要改
备忘:CentOS-7 使用systemctl 管理的服务,文件打开数上限1024要改 https://blog.csdn.net/toontong/article/details/50440272 ...
- 手动编译安装Libvirt之后利用systemctl管理libvirtd服务
因为要给特殊的虚拟机关联文件指定selinux标签,而默认的Libvirt没有这个功能,所以需要修改LIbvirt源代码,重新编译安装Libvirt,而手动编译安装的LIbvirt,没有办法使用sys ...
- centos7把编译安装的服务通过systemctl管理
nginx编译安装的目录是/usr/local/nginx nginx配置文件是/usr/local/nginx/conf/nginx.conf systemctl管理的服务文件在/usr/lib/s ...
- Linux_CentOS 中systemctl 管理服务、防火墙 firewalld 以及 SELinux 配置
使用 systemctl 管理服务 systemctl 就是 service 和 chkconfig 这两个命令的整合,在 CentOS 7 就开始被使用了,systemctl是系统服务管理器命令,它 ...
- RHEL7使用systemctl管理服务
1. systemctl命令 说明 systemctl start [unit type] 启动服务 systemctl stop [unit type] 停止服务 syste ...
- 安装memcached和elasticsearch服务并systemctl管理
[root@izbp18dv3a3metugyd02qxz bin]# rpm -qa | grep memcache [root@izbp18dv3a3metugyd02qxz bin]# yum ...
- 二进制编译安装nginx并加入systemctl管理服务
一.安装nginx所需环境 # yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y 二.安装ngi ...
- 源码安装Nginx以及用systemctl管理
一.源码安装Nginx: 先安装gcc编译器(安装过的可以忽略) [root@localhost ~]# yum -y install gcc gcc-c++ wget 进入src目录 [root@l ...
随机推荐
- 【Gradle】Java Gradle 插件
Java Gradle 插件 如何应用 apply plugin:'java' Java插件约定的项目结构 Project |--build.gradle |--src |--main |--java ...
- 剑指offer 21:包含min函数的栈
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 解题思路 要求在O(1)时间内完成,由于栈后进先出的原则,不能出现破坏栈结构的事情.因 ...
- Python机器学习笔记——One Class SVM
前言 最近老板有一个需求,做单样本检测,也就是说只有一个类别的数据集与标签,因为在工厂设备中,控制系统的任务是判断是是否有意外情况出现,例如产品质量过低,机器产生奇怪的震动或者机器零件脱落等.相对来说 ...
- 使用STS4新建springboot项目
1.配置maven,自定义setting文件和仓库,一定要用阿里云镜像地址下载依赖,官方太坑了,整了半天都没弄好,原来是下载太慢文件损坏 <mirror> <id>alimav ...
- vue自定义指令笔记
https://cn.vuejs.org/v2/guide/custom-directive.html 在vue中,有时候我们会把抽象的方法封装为一个自定义指令,多个地方共用 比如:拖拽指令 < ...
- WINDOWS代理服务器搭建 - Apache httpd
1.检查电脑系统类型 检查电脑版本是为 32位操作系统 还是 64位操作系统 2.下载安装Apache Httpd 下载地址:https://www.apachehaus.com/cgi-bin/do ...
- React中添加注释
React中的注释,其实确切来讲是jsx中的注释: {/*单行注释*/} {/* 多 行 注 释 */}
- ASP.NET Core 获取主机名时的 "Decoded string is not a valid IDN name" 错误
在 ASP.NET Core 中通过 Request.Host.Host 获取主机名(hostname)时,如果主机名中包含非 ASCII 字符(比如 puny code),就会引发下面的异常: Sy ...
- 【UOJ#310】【UNR#2】黎明前的巧克力(FWT)
[UOJ#310][UNR#2]黎明前的巧克力(FWT) 题面 UOJ 题解 把问题转化一下,变成有多少个异或和为\(0\)的集合,然后这个集合任意拆分就是答案,所以对于一个大小为\(s\)的集合,其 ...
- MongoDB for OPS 03:分片 shard 集群
写在前面的话 上一节的复制集也就是主从能够解决我们高可用和数据安全性问题,但是无法解决我们的性能瓶颈问题.所以针对性能瓶颈,我们需要采用分布式架构,也就是分片集群,sharding cluster! ...