老鳥帶你開發(fā)專業(yè)規(guī)范的MySQL啟動(dòng)腳本
每一個(gè)合格的Linux運(yùn)維人員都應(yīng)該做到熟練或精通Shell腳本編程,因?yàn)镾hell腳本語言差不多是所有編程語言里最簡(jiǎn)單的語言,如果Shell腳本不行,意味著運(yùn)維之路可能還沒開始就將要終結(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ù)庫 . /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" #判斷鎖目錄是否可寫。 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對(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í)行腳本后,有返回值才更專業(yè)。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳細(xì)聊聊關(guān)于Mysql聯(lián)合查詢的那些事兒
聯(lián)合查詢union將多次查詢(多條select語句)的結(jié)果,在字段數(shù)相同的情況下,在記錄的層次上進(jìn)行拼接,這篇文章主要給大家介紹了關(guān)于Mysql聯(lián)合查詢的那些事兒,需要的朋友可以參考下2021-10-10mysql創(chuàng)建外鍵報(bào)錯(cuò)的原因及解決(can't?not?create?table)
這篇文章主要介紹了mysql創(chuàng)建外鍵報(bào)錯(cuò)的原因及解決方案(can't?not?create?table),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09關(guān)于k8s環(huán)境部署mysql主從的問題
這篇文章主要介紹了k8s環(huán)境部署mysql主從的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-0330個(gè)mysql千萬級(jí)大數(shù)據(jù)SQL查詢優(yōu)化技巧詳解
本文總結(jié)了30個(gè)mysql千萬級(jí)大數(shù)據(jù)SQL查詢優(yōu)化技巧,特別適合大數(shù)據(jù)里的MYSQL使用2018-03-03