使用 systemctl 管理 MySQL 服务

news2024/12/25 2:20:04

文章目录

    • 前言
    • 1. 安装 MySQL
      • 1.1 下载安装包
      • 1.2 下载自动化脚本
      • 1.3 安装 MySQL
    • 2. 配置 systemd
      • 2.1 配置含义介绍
      • 2.2 配置 systemd
      • 2.3 管理 MySQL 服务

前言

systemd 是 Linux 系统推出的初始化(init)系统,MySQL 使用 RPM 或者 Debian 包安装 MySQL 会默认使用 systemd 来管理 MySQL 服务,不需要额外配置,但是二进制安装还需要运维人员手动配置。

1. 安装 MySQL

1.1 下载安装包

从下方链接中,选择需要下载安装包的版本,下载 MySQL 二进制安装包。

https://downloads.mysql.com/archives/community/

1.2 下载自动化脚本

下方是我的 Github 地址,代码可以直接 Copy 下来:

https://github.com/COOH-791/mysql_lib/blob/main/MySQL_install.py

或者直接在服务器上 wget 下载:

wget https://github.com/COOH-791/mysql_lib/blob/main/MySQL_install.py

脚本可以指定:安装路径, 数据路径, 默认端口 三个重要的参数,如果有需要可以自行指定,也可以选择不指定,将会按照脚本的默认路径安装。

[root@172-16-104-57 mysql_opt]# python MySQL_install.py 
usage: MySQL_install.py [-h] [--path PATH] [--port PORT] [--datadir DATADIR]
                        [--basedir BASEDIR]

Random password: HOcZ9ldv$%mh

optional arguments:
  -h, --help            show this help message and exit
  --path PATH, -p PATH  MySQL binary installation package path.
  --port PORT           Install the port specified by MySQL, Default: 3306
  --datadir DATADIR     Data directory. Default to /data
  --basedir BASEDIR     Base directory. Default to /usr/local

-h: 输出 help
-path & -p 就是 MySQL 安装包的路径(必须输入)
-datadir & -d 就是 MySQL 数据路径 默认:/data
-basedir & -b 就是 MySQL 安装路径 默认:/usr/local
-port 就是 MySQL 的端口 默认:3306

1.3 安装 MySQL

python MySQL_install.py -p=mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz

请添加图片描述
使用屏幕上的命令进入 MySQL 修改 root 密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YouPassword';

添加环境变量:

-- 如果安装目录不在 /usr/local/mysql 先建一个软连接 
-- ln -s /安装目录 /usr/local/mysql
export PATH=$PATH:/usr/local/mysql/bin/
echo 'PATH=$PATH:/usr/local/mysql/bin/' >> /etc/profile

这里简单介绍 MySQL_install 自动化部署脚本,详细的可参考:MySQL 自动化部署

2. 配置 systemd

本小节,介绍配置 systemd 的 MySQL 服务。

2.1 配置含义介绍

systemd 配置项主要包含 3 部分,其具体含义如下。

[unit]

  • Description:服务描述。
  • Documentation:服务文档。
  • After:依赖的服务,只有在依赖的服务启动后才能启动当前服务。

[Install]

  • WantedBy:设置依赖关系,multi-user.target 相当于 System V 中的 init 3,既多用户模式。

[Service]

  • User:指定服务运行用户。

  • Group:指定用户的属组。

  • Type:指定服务启动类型。可设置的值有 simple、exec、forking、oneshot、dbus、notify 和 idle,默认为 simple。

    • forking:服务进程在启动过程中会调用 fork() 创建子进程,当服务启动完毕后,父进程会退出,而子进程将作为服务主进程运行,这也是传统 unix 服务的经典作法。建议设置 PIDFile,以便 systemd 识别服务主进程。在 MySQL 5.7 中,只能将 Type 设置为 forking。
    • notify:服务启动成功后,会调用 sd_notify() 通知 systemd。systemd 在收到通知后,会继续启动后续服务。相当于 forking 该方式更加精准,但需要代码层面的支持。MySQL 8.0 版本原生支持 notify 类型。
  • TimeoutSec:超时时长,包括 TimeoutStartSec 和 TimeoutStopSec。

    • TimeoutStartSec:服务启动时间的超时时长。如果服务在指定时间内没有启动成功,systemd 会认为服务启动失败,此时会执行关闭操作。
    • TimeoutStopSec:服务关闭超时时长,当执行 STOP 操作时,systemd 会立刻发出 SIGTERM 信号来关闭服务进程。如果在指定时间内没有关闭成功,则会发出 SIGKILL 信息强行杀死服务进程。如果将 TimeoutSec 设置为 0,则会关闭超时检测。
  • ExecStart:服务的启动命令。mysqld 必须是绝对路径。

  • EnvironmentFile:环境变量文件。可在该文件中配置服务启动时的环境变量。

  • Restart:指在什么情况下需要重启服务进程。可设置为 no、always、on-success、on-failure、on-abormal、on-abort 和 on-watchdog,默认为 on 表示不重启服务。如果设置为 on-failure 则会在以下场景下重启服务:进程意外退出(返回码非 0),接收到终止信号(包括 core dump,不包括 SIGHUP、SIGINT、SIGTERM 和 SIGPIPE 这四种信号),操作超时,配置的 Watchdog 被触发。

  • RestartPreventExitStatus:如果程序的返回码或者接收信号在该参数中定义了,即使满足 Restart 中定义的条件,也不会触发重启。

  • Environment:设置环境变量。这里的 MYSQLD_PARENT_PID 指的是 mysqld 父进程的 PID。在 MySQL 8.0 中,支持通过 restart 命令重启 MySQL 实例。在执行 restart 命令时,该进程会用来启动 mysqld。PID 为 1 的进程是 init 进程。在 MySQL 5.7 中,因为不支持 restart 命令,所以不用设置该参数。

  • PrivateTmp:是否使用私有的 tmp 目录。

2.2 配置 systemd

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

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
Type=notify
TimeoutSec=0
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS
# EnvironmentFile=/etc/sysconfig/mysql
LimitNOFILE=65535
Restart=on-failure
RestartPreventExitStatus=1
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false

reload 配置文件:

systemctl daemon-reload

2.3 管理 MySQL 服务

启动 MySQL:

systemctl start mysqld

关闭 MySQL:

systemctl stop mysqld

重启 MySQL:

systemctl restart mysqld

设置开机自启:

systemctl enable mysqld

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1152857.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

修改目录权限

CentOS8的目录结构; 虚拟机的克隆; 深克隆;完整克隆;浅克隆;终端命令格式及颜色;/etc/bashrc修改主机名;/etc/hostname linux内核版本号: JDK的版本号; JDK版本号分析; …

030.Python面向对象_类补充_只读属性

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…

Android NDK开发详解之调试和性能分析的通过Android Studio调试

Android NDK开发详解之调试和性能分析的通过Android Studio调试 启用调试功能在设备上启用调试功能。运行可调试的 build 变体。 更改调试程序类型AutoJavaNative(仅适用于 C/C 代码)设备支持 run-as。设备启用了 ptrace。 Dual(仅适用于 C/C…

电脑录像功能在哪?一文帮你轻松破解

“电脑录像功能在哪里呀?最近因工作上的原因,需要使用电脑来录像,但是找了一上午都找不到在哪里,眼看已经快没时间了,现在真的很急,希望大家帮帮我。” 电脑已经成为了人们生活和工作中必不可少的工具&…

YB4606最大2A电流的可编程过压保护开关IC

概述: YB4606的前端是过电压和过电压电流保护装置。它实现了宽输入电压范围从2.5Voc到40Voc。过电压阈值可以外部编程或设置为内部默认设置。的超低电阻集成电源路径nFET开关确保更好电池充电系统应用性能。它可以提供高达2A的电流,以满足电池供应系统。…

TypeScript之函数以及与JavaScript函数的区别

一、是什么 函数是JavaScript 应用程序的基础,帮助我们实现抽象层、模拟类、信息隐藏和模块 在TypeScript 里,虽然已经支持类、命名空间和模块,但函数仍然是主要定义行为的方式,TypeScript 为 JavaScript 函数添加了额外的功能&…

3.9每日一题(三角函数线性组合求不定积分的特殊方法和一般方法)

方法一:通过特殊方法:加项减项拆凑微分 方法二:用三角函数线性组合不定积分的公式(一般方法):

LeetCode字符串题库 之 罗马数字转整数

题目链接🔗力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 1. 题目分析 我们在做题的时候,一定要知道题目的目的是什么,我们可以结合测试用例和提示来看。 我们可以分析以下几点: 1. 每一个罗马数字都…

sql server数据库跟踪——SQL Server Profiler解析

工具: SQL Server Profiler这个工具是SQL Server数据库自带的语句执行跟踪工具,常使用于分析软件修改数据库时所执行的语句,适合用来研究软件运行数据库的原理。 打开方式: 本机安装了SQL server的话,都是自带的。直接…

MySQL中,当update修改数据与原数据相同时会再次执行吗?

一、背景 本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗? 二、测试环境 MySQL5.7.25 Centos 7.4 三、binlog_format为ROW 1、参数 2、测试步骤 session1 session2 ses…

优优嗨聚集团:绝味鸭脖市值上升,餐饮业迎来新变革

导语:绝味鸭脖作为中国餐饮行业的领军企业,其市值上升不仅体现了企业的市场价值,更对整个餐饮行业产生了深远的影响。本文将探讨绝味鸭脖市值上升对餐饮行业的影响,以及未来餐饮行业的发展趋势。 一、绝味鸭脖市值上升&#xff0c…

【Docker】Linux路由连接两个不同网段namespace,连接namespace与主机

如果两个namespace处于不同的子网中,那么就不能通过bridge进行连接了,而是需要通过路由器进行三层转发。然而Linux并未像提供虚拟网桥一样也提供一个虚拟路由器设备,原因是Linux自身就具备有路由器功能。 路由器的工作原理是这样的&#xff…

编程实例:农资进销存管理系统软件,支持扫描二维码追溯码

编程实例:农资进销存管理系统软件,支持扫描二维码追溯码 软件支持扫码农资商品的追溯码,二维码。 软件部分功能: 商品信息管理 进货管理 销售管理 库存管理 编程系统化课程总目录及明细,零基础学编程视频教程&…

英码科技成功入选《2023边缘计算产业图谱》两大细分领域

近日,业界知名的边缘计算行业研究机构发布了《2023边缘计算产业图谱》,展示了全球边缘计算产业的最新发展态势和前景。在本次发布的图谱中,英码科技作为边缘计算领域的领先者,成功入选边缘计算一体机和智能终端两大细分领域&#…

钡铼技术X86工控机在控制和通信任务中的优势

X86工控机是一种基于x86架构的工业控制计算机。x86是一种常见的处理器架构,广泛应用于个人电脑和服务器领域。在工业自动化领域,x86架构的处理器和相应的工控机广泛应用于工业控制和监控系统。 x86工控机通常具有以下特点: 处理能力强大&am…

电脑不显示桌面?盘点4个正确操作!

“我的电脑一打开后完全加载不出来桌面,现在我也不知道怎么办,有没有比较了解电脑的大佬可以分享一下经验呀?” 有时候我们使用电脑时可能会遇到桌面上所有的应用程序都消失了甚至桌面不显示的情况。如果电脑不显示桌面我们可能就很难进行下一…

标配率破8成,新能源车2025年全面标配!哪些OTA供应商正在领跑

伴随着汽车智能化的加速渗透,软件在线升级(OTA)也在快速实现从基于软件层的SOTA ,到硬件层的FOTA的全面普及。 其中,在行业内,SOTA普遍是指车辆软件应用层的升级,通过网络将文件从云端服务器下…

众和策略:营收净利双增显韧性 超百亿分红创新高

Choice数据闪现,到10月30日晚8点,沪深北交易所共有5219家A股公司三季报“交卷”。其间,4188家公司盈利,占比八成以上。 消费赛道复苏最为显着,多家上市公司营收、净利润大幅双增;新动力、轿车等赛道亦接连…

MATLAB中perceptron函数用法

目录 语法 说明 示例 使用感知器求解简单分类问题 perceptron函数的功能是简单的单层二类分类器。 语法 perceptron(hardlimitTF,perceptronLF) 说明 注意 Deep Learning Toolbox™ 支持早期形式的感知器。为了获得更好的结果,您应改用 patternnet&#xff0…