首页 > 运维 > linux运维 > 正文

通过systemctl管理mysqld服务

絕刀狂花
发布: 2025-07-09 12:04:32
原创
943人浏览过
  1. 背景

centos 7.x之前的版本中,系统启动时,首先调用的程序是init,然后init会启动系统所需的所有服务,无论是本地服务还是网络服务。所有服务的启动脚本都存放在/etc/init.d目录下,这些脚本通常是用bash shell编写的。

从CentOS 7.x开始,Red Hat放弃了init启动脚本的方法,转而采用systemd作为启动服务管理机制。

  1. 使用systemctl管理服务的好处
  • 并行处理所有服务,加速开机流程:旧的init启动脚本采用的是【逐项依序启动】的模式,因此即使是不相关的服务也需要一个接一个地等待启动。而现在的硬件主机系统和操作系统几乎都支持多核结构,systemd可以让所有服务同时启动,从而加快系统启动速度。
  • 一经要求就响应的按需启动方式:在systemd中,只需要systemd服务和systemctl命令来管理,无需其他命令支持。与之前的启动方式不同,不再需要init、chkconfig、service等命令。此外,由于systemd常驻内存,因此任何按需请求都可以立即处理后续的daemon启动任务。
  • 服务依赖性的自我检查:systemd允许自定义服务依赖性检查。如果B服务依赖于A服务,而你只手动启动了B服务,systemd会自动启动A服务。这可以免去管理员逐项分析的麻烦。
  1. Systemd启动脚本配置文件所在目录
目录 说明
/lib/system/system/ 使用CentOS官方提供的软件安装后,默认的启动脚本配置文件都放在这里,尽量不要修改这里的数据。如果需要修改,请在/etc/system/system/下进行。
/etc/system/system/ 管理员根据主机系统需求创建的执行脚本,这个目录类似于之前的/etc/rc.d/rc5.d/Sxx。执行优先级高于/run/system/system/。
/run/system/system/ 系统执行过程中产生的服务脚本。
  1. MySQL服务在之前的安装中

在之前的安装中,我们通常通过support-files/mysql.server(单实例)和support-files/mysqld_multi.server(多实例)来配置服务。

例如:https://www.php.cn/link/803d1665f18163c7851eadf4f7ed6120

通过systemctl管理mysqld服务

再如:https://www.php.cn/link/544c335154f6eaf79e2dff463a852e78

通过systemctl管理mysqld服务

管理MySQL服务的脚本位于mysql.server和mysqld_multi.server文件中。

乾坤圈新媒体矩阵管家
乾坤圈新媒体矩阵管家

新媒体账号、门店矩阵智能管理系统

乾坤圈新媒体矩阵管家 17
查看详情 乾坤圈新媒体矩阵管家

这些脚本复杂且修改起来较为困难。例如,如果我想配置多实例,但不想修改现有的my.cnf配置文件,如果新实例的配置文件命名为my3307.cnf,使用旧方法修改mysql.server就变得很麻烦。

而使用systemd则更为简单。

例如,定义一个测试服务为mysql3307.service:

通过systemctl管理mysqld服务

[Unit]
Description=MySQL Server
After=network.target
<p>[Install]
WantedBy=multi-user.target</p><p>[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 决定在服务失败时是否自动重启RestartSec=3 定义尝试重启的间隔时间。

以上就是通过systemctl管理mysqld服务的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号