Shell脚本学习-MySQL单实例和多实例启动脚本
已知MySQL多实例启动命令为:
mysqld_safe --defaults-file=/data/3306/my.cnf &
停止命令为:
mysqladmin -uroot -pchang123 -S /data/3306/mysql.sock shutdown
请完成mysql多实例的启动脚本的编写:
问题分析:
要想写出脚本,必须对MySQL服务很熟悉。
1)单实例:
# Mysql启动
mysqld_safe &# Mysql停止
mysqld_admin -u root -p Chang123 shutdown
# 设置root密码
[root@vm1 scripts]# mysqladmin -uroot password "Chang123"# 先将mariadb停止
[root@vm1 scripts]# mysqladmin -uroot -pChang123 shutdown# 检查进程是否停止
[root@vm1 scripts]# netstat -atunlp |grep 3306# 再启动mysql
[root@vm1 scripts]# mysqld_safe --user=mysql &
[1] 11535
[root@vm1 scripts]# 230802 21:49:37 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
230802 21:49:37 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql# 再检查mysql进程是否已启动
[root@vm1 scripts]# netstat -atunlp |grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 11681/mysqld
先是单实例的启动脚本的编写:
[root@vm1 scripts]# cat start_db.sh
#!/bin/bash
#[ -f /etc/init.d/functions ] && . /etc/init.d/functions || echo 1usage(){echo “USAGE: $0 {start|stop|restart}exit 1
}if [ $# -ne 1 ]thenusage
fistart() {mysqld_safe --user=mysql >/dev/null 2>&1 &if [ $? -eq 0 ]thenaction "start mysql" /bin/trueelseaction "start mysql" /bin/falsefi
}stop() {mysqladmin -uroot -pChang123 shutdown >/dev/null 2>&1if [ $? -eq 0 ]thenaction "stop mysql" /bin/trueelseaction "stop mysql" /bin/falsefi
}restart() {stopsleep 2start
}if [ "$1" == "start" ]thenstart
elif [ "$1" == "stop" ]thenstop
elif [ "$1" == "restart" ]thenrestart
elseusage
fi
执行结果:
[root@vm1 scripts]# netstat -atunlp |grep 3306
[root@vm1 scripts]#
[root@vm1 scripts]# sh start_db.sh start
start mysql [ OK ]
[root@vm1 scripts]# 230802 22:17:56 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
230802 22:17:56 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql[root@vm1 scripts]# sh start_db.sh restart
stop mysql [ OK ]
start mysql [ OK ]
[root@vm1 scripts]# 230802 22:18:19 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
230802 22:18:19 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql[root@vm1 scripts]#
将一些信息都不显示出来:
[root@vm1 scripts]# sh start_db.sh start
start mysql [ OK ]
[root@vm1 scripts]# sh start_db.sh stop
stop mysql [ OK ][root@vm1 scripts]# sh start_db.sh restart
stop mysql [ OK ]
start mysql [ OK ][root@vm1 scripts]# netstat -atunlp |grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 13173/mysqld
多实例启动脚本:
[root@vm1 scripts]# cat mysql_manage.sh
#!/bin/bash
#
Port=3306
MysqlUser="root"
MysqlPassword="Chang123"
CmdPath="/usr/local/mysql/bin"#start function
start() {if [ `netstat -auntlp |grep "$Port" | wc -l` -eq 0 ]thenecho "Starting MySQL..."/bin/sh ${CmdPath}/mysqld_safe --defaults-fle=/data/${Port}/my.cnf 2>&1 >/dev/null &elseecho "MySQL is running..."
}#stop function
stop(){if [ `netstat -atunlp |grep "$Port" | wc -l` -eq 0 ]thenecho "Stopping MySQL..."${CMDPath}/mysqladmin -u ${MysqlUser} -p {$MysqlPassword} -S /data/${Port}/mysql.sock shutdownelseecho "MySQL is stopped..."fi
}#restart function
restart(){echo "Restarting MySQL..."stopsleep 2start
}case "$1" in
start)start;;
stop)stop;;
restart)restart;;
*)echo "USAGE: $0 {start|stop|restart}"
esac
代码说明:
1)其中使用了case语句。
把这个脚本放到/etc/init.d/目录中,实现/etc/init.d/mysqld01 start 启动,并通过chkconfig对其设置开机自启动和关闭。
如果自己写脚本,也就是放到/etc/init.d目录中,作为启动脚本。
在脚本中添加这块内容,设置mysql的开机自启动。
# chkconfig: 2345 20 80
# description: Start mysql and stop mysql script.
man chkconfig,看看chkconfig的帮助文档。

2345是运行的级别。
20:启动优先级
80: 停止优先级
你应该能指出descripion的内容。\ 反斜线是换行继续。忽略掉在行前面的空格。
多看man帮助文档。
看看/etc/init.d/rpcbind



需要注意的是:数字可设置成不一样的,但是要确保启动优先级在rc.d的子目录中不要有冲突。切记。
企业面试题:
怎么把自己写的脚本添加到服务里面,即可以使用service命令来调用?
# chkconfig 2345 21 60
# description: Save and restores system entropy pool for \
相关文章:
Shell脚本学习-MySQL单实例和多实例启动脚本
已知MySQL多实例启动命令为: mysqld_safe --defaults-file/data/3306/my.cnf & 停止命令为: mysqladmin -uroot -pchang123 -S /data/3306/mysql.sock shutdown 请完成mysql多实例的启动脚本的编写: 问题分析: 要想写出脚…...
vue3搭建(vite+create-vue)
目录 前提条件 输入命令 对于Add an End-to-End Testing Solution nightwatch和Cypress 和 Playwright 运行 前提条件 熟悉命令行已安装 16.0 或更高版本的 Node.js (node -v查看版本) 输入命令 npm init vuelatest 这一指令将会安装并执行 create-…...
服务器中了360后缀勒索病毒怎么解决,360后缀勒索病毒解密数据恢复
某医药公司是一家小型企业,拥有自己的服务器存储重要数据和文件。某天早上,IT管理员发现企业服务器中了360后缀的勒索病毒,所有数据文件都被加密了。这个病毒的入侵让公司业务受到严重影响,企业立即启动了勒索病毒解密数据恢复的措…...
3000字详解:风控核心岗位及核心价值
01、信贷场景中所谓风控是什么? 从一个小故事说起: “风控是什么?” “你走过大桥么?” “桥上有栏杆么?” “有” “你过桥时会扶栏杆么” “一般不扶” “那栏杆是不是没必要有呢” “那还是得有啊…...
fiddler 手机抓包(含https) 完整流程
第一部分:下载并安装fiddler 一.使用任一浏览器搜索【fiddler下载安装】,并下载fiddler 安装包。 二.fiddler安装包下载成功后,将下载的fiddler压缩包解压到自定义文件夹【fiddler】或者解压到当前文件夹下,双击文件夹中的【fidd…...
ChatGPT学python——制作自己的AI模型(一)初步了解
前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄,vue成神之路★ ★ 解决算法,一个专栏就够了★ ★ 架…...
多赛道出海案例,亚马逊云科技为企业提供全新解决方案实现高速增长
数字化浪潮之下,中国企业的全球化步伐明显提速。从“借帆出海”到“生而全球化”,中国企业实现了从低端制造出口,向技术创新和品牌先导的升级。为助力中国企业业务高效出海,亚马逊云科技于2023年6月9日在深圳大中华喜来登酒店举办…...
异步消息传递技术 JMS AMQP MQTT
广泛使用的三种异步消息传递技术:JMS AMQP MQTT JMS AMQP MQTT JMS(Java Message Service):一个类似JDBC的规范,提供了与消息服务相关的API接口 JMS消息模型: P2P 点对点模型:消息发到一个队…...
利用Python实现汉译英的三种方法
一、前言 有道翻译API(主要推荐) 百度翻译API(需要申请key与密钥,每月100万免费字符) 谷歌翻译API(需要梯子,而且不稳定,不推荐) 二、代码 1、判断文本是否存在中文…...
磁盘均衡器:HDFS Disk Balancer
HDFS Disk Balancer 背景产生的问题以及解决方法 hdfs disk balancer简介HDFS Disk Balancer功能数据传播报告 HDFS Disk Balancer开启相关命令 背景 相比较于个人PC,服务器一般可以通过挂载多块磁盘来扩大单机的存储能力在Hadoop HDFS中,DataNode负责最…...
蔚小理新势力互联网造车在CAN FD硬件主框架及后装控制方案开发
在国内,新势力造车影响已经非常之大,整个造车大潮中,新整车企业蔚来汽车、小鹏汽车、理想汽车无一例外选择了CAN FD作为主要的车载通信总线,特斯拉推出了引领汽车EE架构集中化的趋势,即使在车载以太网EE架构快速发展的…...
左叶子之和
404. 左叶子之和 简单(有点意思 第一次我也写错了 先自己递归去写 如果不行看答案 我感觉还是蛮不错的) 示例 1: 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15…...
Java版知识付费平台免费搭建 Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台qt
Java版知识付费源码 Spring CloudSpring BootMybatisuniapp前后端分离实现知识付费平台 提供职业教育、企业培训、知识付费系统搭建服务。系统功能包含:录播课、直播课、题库、营销、公司组织架构、员工入职培训等。 提供私有化部署,免费售…...
LeetCode343. 整数拆分
343. 整数拆分 文章目录 [343. 整数拆分](https://leetcode.cn/problems/integer-break/)一、题目二、题解方法一:动态规划方法改良 一、题目 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整…...
单机,集群和分布式概念
单机的局限性: 1.受限于硬件资源,单机所能承受的用户并发量太少; 2.一个系统有多个模块,任意模块的修改都会导致整个项目代码重新编译、部署; 3.系统中,有些模块是CPU密集型,有些模块是I/O密…...
小目标检测(1)——大恒(DaHeng)相机操作与控制编程
文章目录 引言正文相关开发库的介绍编程准备配置引用头文件GalaxyIncludes.h配置lib文件 具体编程过程初始化和反初始化枚举设备开关设备 属性控制属性控制器种类 图像采集控制和图像处理采单帧回调采集图像处理流对象属性控制 获取设备事件获取掉线事件通知 样例程序分析补充&…...
异步实现邮件发送
目录 问题描述: 问题分析: 问题解决: 分析总结: 问题描述: 在写接口的时候,遇到一个问题,前端要求直接返回结果再去运行其他代码。 问题分析: 因为经费紧张,本次使用…...
【Redis】内存数据库Redis进阶(Redis分片集群)
目录 分布式缓存 Redis 四大问题搭建Redis分片集群分片原理散列插槽(插槽原理)集群伸缩需求设定配置集群伸缩 故障转移自动故障转移手动故障转移 RedisTemplate访问分片集群 分布式缓存 Redis 四大问题 基于 Redis 集群解决单机 Redis 存在的四大问题&a…...
替代LT8711龙讯替代RTD2172 CS5265中文规格书4K60HZ转接线 设计Type-C转HDMI2.0高清投屏方案
龙迅LT8711是一款Type-C/DP1.2 to HDMI2.0方案芯片,北京集睿致远(ASL)推出的CS5265可以完全代替LT8711UX,封装尺寸比LT8711UX小的同时,CS5265的芯片集成度高,内置MCU,内置lLDO等,CS5…...
HCIA-datacom数通题库和录播视频资料
HCIA-Datacom,是华为数通认证的初级考试,培训与认证具备数通基础通用知识和技能水平的工程师,只是入门了解数通的一些基础通用知识,适用于小白了解和学习数通知识点起点。 个人建议还是有必要考的,如果在企业考试考试…...
代码重构美学
代码重构美学大赛技术文章大纲大赛背景与意义代码重构的定义及其在软件开发中的重要性美学在代码重构中的体现:可读性、简洁性、可维护性大赛的宗旨:推动高质量代码实践,提升开发者审美与工程能力参赛作品评审标准功能性:重构后代…...
NRBO - Transformer - BiLSTM回归:Matlab实现的数据预测魔法
NRBO-Transformer-BiLSTM回归 Matlab代码 基于牛顿拉夫逊优化算法优化Transformer结合双向长短期记忆神经网络(BiLSTM)的数据回归预测(可以更换为分类/单、多变量时序预测/回归,前私我),Matlab代码,可直接运行,适合小白新手 程序已…...
从Sketchfab下载的glTF模型怎么用?手把手教你用Assimp 5.3.1在Visual Studio 2022里解析《蔚蓝档案》角色数据
从Sketchfab下载的glTF模型实战解析:用Assimp 5.3.1提取《蔚蓝档案》角色数据 当你在Sketchfab上发现一个精美的《蔚蓝档案》角色模型,下载glTF格式文件后,接下来该怎么办?本文将带你从零开始,使用Assimp 5.3.1库在Vi…...
QQ空间历史说说备份终极攻略:3步实现数据永久保存
QQ空间历史说说备份终极攻略:3步实现数据永久保存 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory GetQzonehistory是一款专为QQ空间用户设计的开源数据备份工具,…...
手把手教你用Python实现ECC椭圆曲线加密(附完整代码示例)
手把手教你用Python实现ECC椭圆曲线加密(附完整代码示例) 1. 为什么选择ECC加密? 在现代密码学领域,椭圆曲线加密(ECC)正逐渐成为RSA的有力竞争者。相比传统RSA算法,ECC在相同安全级别下密钥长…...
文墨共鸣大模型智能体(Agent)开发入门:构建自动化任务执行系统
文墨共鸣大模型智能体(Agent)开发入门:构建自动化任务执行系统 你有没有想过,让AI不仅能回答问题,还能像人一样思考、规划,并主动使用工具去完成任务?比如,你告诉它“帮我查一下北京…...
终极CoreUI Bootstrap管理模板:5个导航组件实战技巧提升用户体验
终极CoreUI Bootstrap管理模板:5个导航组件实战技巧提升用户体验 【免费下载链接】coreui-free-bootstrap-admin-template coreui/coreui-free-bootstrap-admin-template: CoreUI-Free-Bootstrap-Admin-Template 是一套免费的Bootstrap 4/5管理模板,包含…...
Qwen2.5-7B+Tools应用场景解析:智能客服、信息查询等实战案例
Qwen2.5-7BTools应用场景解析:智能客服、信息查询等实战案例 1. 引言:当大语言模型遇上工具 想象一下,你正在运营一家电商平台,每天要处理上千条客户咨询。人工客服团队疲于应对,而客户等待时间越来越长。这时&#…...
能耗监控系统:OpenClaw+GLM-4-7-Flash分析家庭用电报告
能耗监控系统:OpenClawGLM-4-7-Flash分析家庭用电报告 1. 为什么需要本地化的能耗监控系统 去年夏天,我家电费账单突然比平时高出40%。当我尝试用市面上的智能电表分析工具时,发现需要将用电数据上传到第三方平台才能生成报告——这意味着我…...
Pixel Dimension Fissioner 与YOLOv8协同:智能图像分析与内容生成
Pixel Dimension Fissioner 与YOLOv8协同:智能图像分析与内容生成 1. 场景引入:当计算机视觉遇上内容生成 想象一下这样的场景:你拍了一张街景照片上传到系统,几秒钟后,系统不仅识别出了照片中的咖啡馆、行道树和行人…...
