当前位置: 首页 > 编程笔记 >

老鸟带你开发专业规范的MySQL启动脚本

黄宏旷
2023-03-14
本文向大家介绍老鸟带你开发专业规范的MySQL启动脚本,包括了老鸟带你开发专业规范的MySQL启动脚本的使用技巧和注意事项,需要的朋友参考一下

每一个合格的Linux运维人员都应该做到熟练或精通Shell脚本编程,因为Shell脚本语言差不多是所有编程语言里最简单的语言,如果Shell脚本不行,意味着运维之路可能还没开始就将要终结。——老男孩老师

#!/bin/bash
# chkconfig: 2345 64 36 #配置系统自启动
# description: A very fast and reliable SQL database engine.
##############################################################
# File Name: mysqld
# Version: V1.0
# Author: oldboy
# Organization: www.oldboyedu.com
# Created Time : 2018-06-05 08:58:19
##############################################################
#引入系统函数库
. /etc/init.d/functions

#基础路径定义
basedir='/application/mysql'
bindir='/application/mysql/bin'
lockdir='/var/lock/subsys'                    
lock_file_path="$lockdir/mysql"
mysqld_pid_file_path='$basedir/data/`uname -n`.pid'

#成功提示函数
log_success_msg(){
  #action为特殊的提示函数,$@为所有参数。
  action "SUCCESS! $@" /bin/true
}
#失败提示函数
log_failure_msg(){
  action "ERROR! $@" /bin/false
 }
 
#mysql启动函数
start(){
  echo $"Starting MySQL"
  #测试mysqld_safe是否可执行
  if test -x $bindir/mysqld_safe
  then
    #后台执行启动mysql命令
    $bindir/mysqld_safe &>/dev/null &
    #获取返回值
    retval=$?
    #判断返回值是否为0
    if [ $retval -eq 0 ]
    then
      #调用成功提示函数。
      log_success_msg "mysql Startup"
      if test -w "$lockdir" #判断锁目录是否可写。
      then
        touch "$lock_file_path" #创建锁文件。
      fi
      return $retval #给返回值是专业的表现。
    else
      log_failure_msg "MySQL Startup" #调用失败函数提示。
      return $retval
    fi
  else
    log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)"
  fi
}
#停止MySQL函数。
stop(){
  #判断mysql pid file大小是否为0。
  if test -s "$mysqld_pid_file_path"
  then
    #读取pidfile
    mysqld_pid=`cat "$mysqld_pid_file_path"`
    #判断mysql pid对应的进程是否存在。
    if (kill -0 $mysqld_pid 2>/dev/null)
    then
      echo $"Shutting down MySQL"
      kill $mysqld_pid #停止MySQL命令。
      retval=$?
      if [ $retval -eq 0 ]
      then
        log_success_msg "MySQL Stop" #调用停止成功函数。
        if test -f "$lock_file_path"
        then
          rm -f "$lock_file_path" #删除锁文件。
        fi
        return $retval
      else
        log_failure_msg "MySQL Stop."
        return $retval
      fi
    else
      log_failure_msg "MySQL server process mysqld_pid is not running!"
      rm "$mysqld_pid_file_path"
    fi 
  else
    log_failure_msg "MySQL server PID file is null or not exist!"
  fi
}
#接收传参判断并执行相应函数。
case "$1" in
  start)
    start
    retval=$?
    ;;
  stop)
    stop
    retval=$?
    ;;
  restart)
    stop
    sleep 2 #这里很重要,要休息一下。
    start
    retval=$?
    ;;
  *)
    echo $"Usage:$0 {start|stop|restart}"
    exit 2
esac
exit $retval  #执行脚本后,有返回值才更专业。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • ThinkCMF5遵循PSR-2命名规范和PSR-4自动加载规范及 ThinkPHP5的开发规范,并且注意如下规范: URL规范 除 api的url,其它 url 不能以 api/开头 模板 assign 变量: 命名小写+下划线 每个 assign变量必须有一个名称 $this->assign('post', $post); 表单 name 命名: 小写+下划线 Controller,Mode

  • ThinkCMF完全按ThinkPHP开发规范进行 开发前请详细阅读: http://www.kancloud.cn/manual/thinkphp/1687 ThinkCMF特别开发规范 应用后台控件器放在应用Controller目录中,最好不要存放在Admin/Controller下,保证应用模块独立 应用后台控件器命名以****adminController.class.php或者Admin

  • ThinkCMF遵循PSR-2命名规范和PSR-4自动加载规范及 ThinkPHP5.1的开发规范,并且注意如下规范: URL规范 除 api的url,其它 url 不能以 api/开头 模板 assign 变量: 命名小写+下划线 每个 assign变量必须有一个名称 $this->assign('post', $post); 表单 name 命名: 小写+下划线 Controller,Mod

  • 命名规范 ThinkPHP5.1遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范: 目录和文件 目录使用小写+下划线; 类库、函数文件统一以.php为后缀; 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致; 类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名; 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写); 函数和类、属性命名 类的命

  • 下面将描述采用CI开发中的编码的规范. 内容列表 文件格式 PHP 闭合标签 类和方法的命名 变量命名 注释 常量 TRUE, FALSE, 和NULL 逻辑运算符 比较返回值和类型映射 调试代码 空行分割 兼容性 用常规词做类名和文件名 数据库表名 一个文件一个类 空白 断行 代码缩进 方括号及圆括号内的空格符 本地化文本 私有方法和变量 PHP 错误 短标签 每行一条语句 字符串 SQL 查询

  • 应用程序目录 应用程序目录可以放到任意位置 入口文件 和nginx+PHP-FPM下的PHP应用程序一样,WorkerMan中的应用程序也需要一个入口文件,入口文件名没有要求,并且这个入口文件是以PHP Cli方式运行的。 入口文件中是创建监听进程相关的代码,例如下面的基于Worker开发的代码片段 test.php <?php use WorkermanWorker; require_once