主頁(yè) > 知識(shí)庫(kù) > 老鳥(niǎo)帶你開(kāi)發(fā)專(zhuān)業(yè)規(guī)范的MySQL啟動(dòng)腳本

老鳥(niǎo)帶你開(kāi)發(fā)專(zhuān)業(yè)規(guī)范的MySQL啟動(dòng)腳本

熱門(mén)標(biāo)簽:呼叫中心市場(chǎng)需求 服務(wù)外包 AI電銷(xiāo) 網(wǎng)站排名優(yōu)化 地方門(mén)戶網(wǎng)站 鐵路電話系統(tǒng) 百度競(jìng)價(jià)排名 Linux服務(wù)器

每一個(gè)合格的Linux運(yùn)維人員都應(yīng)該做到熟練或精通Shell腳本編程,因?yàn)镾hell腳本語(yǔ)言差不多是所有編程語(yǔ)言里最簡(jiǎn)單的語(yǔ)言,如果Shell腳本不行,意味著運(yùn)維之路可能還沒(méi)開(kāi)始就將要終結(jié)?!夏泻⒗蠋?/p>

#!/bin/bash
# chkconfig: 2345 64 36 #配置系統(tǒng)自啟動(dòng)
# 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
##############################################################
#引入系統(tǒng)函數(shù)庫(kù)
. /etc/init.d/functions

#基礎(chǔ)路徑定義
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'

#成功提示函數(shù)
log_success_msg(){
  #action為特殊的提示函數(shù),$@為所有參數(shù)。
  action "SUCCESS! $@" /bin/true
}
#失敗提示函數(shù)
log_failure_msg(){
  action "ERROR! $@" /bin/false
 }
 
#mysql啟動(dòng)函數(shù)
start(){
  echo $"Starting MySQL"
  #測(cè)試mysqld_safe是否可執(zhí)行
  if test -x $bindir/mysqld_safe
  then
    #后臺(tái)執(zhí)行啟動(dòng)mysql命令
    $bindir/mysqld_safe >/dev/null 
    #獲取返回值
    retval=$?
    #判斷返回值是否為0
    if [ $retval -eq 0 ]
    then
      #調(diào)用成功提示函數(shù)。
      log_success_msg "mysql Startup"
      if test -w "$lockdir" #判斷鎖目錄是否可寫(xiě)。
      then
        touch "$lock_file_path" #創(chuàng)建鎖文件。
      fi
      return $retval #給返回值是專(zhuān)業(yè)的表現(xiàn)。
    else
      log_failure_msg "MySQL Startup" #調(diào)用失敗函數(shù)提示。
      return $retval
    fi
  else
    log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)"
  fi
}
#停止MySQL函數(shù)。
stop(){
  #判斷mysql pid file大小是否為0。
  if test -s "$mysqld_pid_file_path"
  then
    #讀取pidfile
    mysqld_pid=`cat "$mysqld_pid_file_path"`
    #判斷mysql pid對(duì)應(yīng)的進(jìn)程是否存在。
    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" #調(diào)用停止成功函數(shù)。
        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
}
#接收傳參判斷并執(zhí)行相應(yīng)函數(shù)。
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  #執(zhí)行腳本后,有返回值才更專(zhuān)業(yè)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • MySQL 使用規(guī)范總結(jié)
  • 超詳細(xì)MySQL使用規(guī)范分享
  • MySQL數(shù)據(jù)庫(kù)使用規(guī)范總結(jié)
  • MySQL開(kāi)發(fā)規(guī)范與使用技巧總結(jié)
  • mysql數(shù)據(jù)庫(kù)開(kāi)發(fā)規(guī)范【推薦】
  • MySQL數(shù)據(jù)庫(kù)命名規(guī)范及約定
  • Mysql建表與索引使用規(guī)范詳解
  • MYSQL 數(shù)據(jù)庫(kù)命名與設(shè)計(jì)規(guī)范
  • 專(zhuān)業(yè)級(jí)的MySQL開(kāi)發(fā)設(shè)計(jì)規(guī)范及SQL編寫(xiě)規(guī)范

標(biāo)簽:蘭州 崇左 仙桃 湖南 銅川 黃山 湘潭 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《老鳥(niǎo)帶你開(kāi)發(fā)專(zhuān)業(yè)規(guī)范的MySQL啟動(dòng)腳本》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266