当前位置: 首页 > news >正文

Shell篇之编写MySQL启动脚本

Shell篇之编写MySQL启动脚本

1. 脚本内容

vim mysql_ctl.sh
#!/bin/bashmysql_port=3306
mysql_username="root"
mysql_password="molinker"
mysql_conf="/opt/lanmp/mysql/etc/my.cnf"
mysql_sock="/opt/lanmp/mysql/var/mysql.sock"function_start_mysql(){printf "Starting MySQL ...\n"/bin/sh /opt/lanmp/mysql/bin/mysqld_safe --defaults-file=${mysql_conf} 2>&1 > /dev/null &
}function_status_mysql(){
mysql_stat=0
mysql_tmpa=`ps -ef | grep mysql | grep -v root | awk '{print $2}'`
name="`hostname`.pid"
mysql_tmpb=`cat /opt/lanmp/mysql/var/$name`
if [ `lsof -i:20036 | wc -l` -gt 0 ]; thenif [ `ps -ef | grep mysql | grep -v grep | wc -l` -gt 0 ]; thenif [ $mysql_tmpa -eq $mysql_tmpb ]; thenmysql_stat=1fifi
fiif [ $mysql_stat -eq 1 ]; thenecho "mysql(pid $mysql_tmpb) is runing!"
elif [ $mysql_stat -eq 0 ]; thenecho "mysql is not runing!"
fi
}function_stop_mysql(){printf "Stopping MySQL ...\n"/opt/lanmp/mysql/bin/mysqladmin --port=${mysql_port} --user=${mysql_username} --password=${mysql_password} --socket=${mysql_sock} shutdown
}function_restart_mysql(){printf "Restarting MySQL ...\n"function_stop_mysqlsleep 1function_start_mysql
}function_kill_mysql(){ps -ef | grep "mysqld_safe" | grep -v grep | awk '{print "kill -9 " $2}' | /bin/shps -ef | grep "mysqld" | grep -v grep | awk '{print "kill -9 " $2}' | /bin/sh
}if [ "$1" = "start" ]; thenfunction_start_mysql
elif [ "$1" = "stop" ]; thenfunction_stop_mysql
elif [ "$1" = "status" ]; thenfunction_status_mysql
elif [ "$1" = "restart" ]; thenfunction_restart_mysql
elif [ "$1" = "kill" ]; thenfunction_kill_mysql
elseprintf "Usage: mysql {start|stop|restart|kill|status}\n"
fi

注意事项

mysql_conf:为MySQL对应配置文件路径
mysql_sock:为MySQL对应socket文件

2. 赋权

chmod +x mysql_ctl.sh

3. 命令

./mysql_ctl start
./mysql_ctl status
./mysql_ctl restart
http://www.lryc.cn/news/441151.html

相关文章:

  • supermap Iclient3d for cesium加载地形并夸大地形
  • 一文解读OLAP的工具和应用软件
  • xml重点笔记(尚学堂 3h)
  • 爬虫代理API的全面解析:让数据抓取更高效
  • PCL 点云中的植被信息提取(C++详细过程版)
  • requests-html的具体使用方法有哪些?
  • YOLOv9改进策略【卷积层】| AKConv: 具有任意采样形状和任意参数数量的卷积核
  • 图神经网络池化方法
  • 小琳AI课堂:确保大语言模型安全的八大策略--从数据隐私到用户教育
  • Python 数学建模——高斯核密度估计
  • Flink+Spark相关记录
  • 2023 hnust 湖科大 毕业实习 报告+实习鉴定表
  • ConflictingBeanDefinitionException | 运行SpringBoot项目时报错bean定义冲突解决方案
  • 如何切换淘宝最新镜像源(npm)【2024版】
  • YoloV10改进策略:Block改进|PromptIR(NIPS‘2023)|轻量高效,即插即用|(适用于分类、分割、检测等多种场景)
  • 使用rust自制操作系统内核
  • Flink难点和高阶面试题:Flink的状态管理机制如何保证数据处理的准确性和完整性
  • 【激励广告带来的广告收入与用户留存率的双重提升】
  • 指针和引用;内联函数和普通函数
  • 简单题67.二进制求和 (java)20240919
  • DDD的主要流程
  • linux驱动开发-设备树
  • 数据结构——二叉树堆的专题
  • 【C语言零基础入门篇 - 7】:拆解函数的奥秘:定义、声明、变量,传递须知,嵌套玩转,递归惊艳
  • ClickHouse在AI领域的结合应用
  • git push出错Push cannot contain secrets
  • OpenAI 的最强模型 o1 的“护城河”失守?谷歌 DeepMind 早已揭示相同原理
  • 【胡乱念叨】大模型的“我”
  • Flag_AGtivity_clear_top网页编程指南如何退出多activity程序
  • 克隆centos网卡uuid相同如何修改