老鳥帶你開發(fā)專業(yè)規(guī)范的MySQL啟動腳本
更新時間:2019年09月26日 11:22:20 作者:老男孩oldboy
這篇文章主要介紹了老鳥帶你開發(fā)專業(yè)規(guī)范的MySQL啟動腳本,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
每一個合格的Linux運維人員都應該做到熟練或精通Shell腳本編程,因為Shell腳本語言差不多是所有編程語言里最簡單的語言,如果Shell腳本不行,意味著運維之路可能還沒開始就將要終結(jié)。——老男孩老師
#!/bin/bash
# chkconfig: 2345 64 36 #配置系統(tǒ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ù)庫
. /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'
#成功提示函數(shù)
log_success_msg(){
#action為特殊的提示函數(shù),$@為所有參數(shù)。
action "SUCCESS! $@" /bin/true
}
#失敗提示函數(shù)
log_failure_msg(){
action "ERROR! $@" /bin/false
}
#mysql啟動函數(shù)
start(){
echo $"Starting MySQL"
#測試mysqld_safe是否可執(zhí)行
if test -x $bindir/mysqld_safe
then
#后臺執(zhí)行啟動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" #判斷鎖目錄是否可寫。
then
touch "$lock_file_path" #創(chuàng)建鎖文件。
fi
return $retval #給返回值是專業(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對應的進程是否存在。
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í)行相應函數(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í)行腳本后,有返回值才更專業(yè)。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
mysql創(chuàng)建外鍵報錯的原因及解決(can't?not?create?table)
這篇文章主要介紹了mysql創(chuàng)建外鍵報錯的原因及解決方案(can't?not?create?table),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
30個mysql千萬級大數(shù)據(jù)SQL查詢優(yōu)化技巧詳解
本文總結(jié)了30個mysql千萬級大數(shù)據(jù)SQL查詢優(yōu)化技巧,特別適合大數(shù)據(jù)里的MYSQL使用2018-03-03

