mysql自己編寫啟停腳本


一、場景

  在實際生產環境中要求相對較高的企業對於root權限管控相對比較高,故而很多軟件並非安裝在root用戶下(當然root用戶權限也可管理,但正常情況下root權限並不會給業務使用方,而會給一個普通賬戶權限,例如mysql安裝在普通用戶下,普通用戶只能操作用戶下的權限。對於安裝在普通用戶下的mysql或者在root用戶下安裝了多實例的對於管理尤其是啟停則不能使用mysql自帶的mysqld start|stop|restart等進行啟停,root用戶則可以(注:root用戶下自定義安裝mysql則需要修改MySQLd 文件詳細參考另外一篇博文:http://www.cnblogs.com/Steward-Xu/p/6991385.html))

  如果mysql安裝至普通用戶下如何啟停mysql?

二、使用非腳本方式及手工執行mysql命令實現啟動、停止。

  1、啟動方法:使用mysqld_safe  --defaults-file=/data/mysql/my.cnf

  2、停止方法:mysqladmin  -u root -p'數據庫密碼' -S $mysql_sock shutdown  這是mysql官方推介使用的停止方式

    或者采用kill 進程號(不采用kill -9)在使用kill 前必須ps -ef | grep mysql 找到進程再用kill 停止進程。(Mysql 自帶的腳本mysqld采用的是kill 進程方式停止)

  3、重啟方法:必須先停止shutdown或者kill mysql進程才能使用mysqld_safe  --defaults-file=/data/mysql/my.cnf

  4、Mysql是否啟動狀態查看只能用ps -ef | grep mysql 查看是否有進程存在,有則表示mysql運行;無則表示mysql沒有運行。

三、腳本實現:

#!/bin/sh
###################################################
# this script is created by xuxuedong.            #
# e_mail:365***746@qq.com                         #
# qqinfo:365***746                                #
# This  is a script about Mysq startup and stop   #
# version:1.1                                     #
###################################################
. /etc/init.d/functions
port=3307
mysql_user="root"
mysql_pwd="xuxuedong"
CmdPath="/iddb/mysql3307/bin"
mysql_sock="/iddb/${port}data/mysql.sock"
####start
. /etc/init.d/functions
function_start_mysql()
{
    if [ ! -e "$mysql_sock" ]
        then
            action "starting Mysql...." /bin/true
            /bin/sh  ${CmdPath}/mysqld_safe  --defaults-file=/iddb/mysql3307/my.cnf  2>&1 >/dev/null &
        else
            action "started Mysql." /bin/true
            exit
    fi
}

function_status_mysql()
{
    if [ ! -e "$mysql_sock" ]
        then
            echo " mysql is running!!!"
        else
            echo " mysql is not running!!!"
        exit
    fi
}
#####stop
function_stop_mysql()
{
    if [ ! -e "$mysql_sock" ]
        then
            action "stoped Mysql...." /bin/true
        else
            ${CmdPath}/mysqladmin  -u ${mysql_user} -p'xuxuedong' -S $mysql_sock shutdown
            sleep 5;
            [ 0 -eq $? ]&& action "stop Mysql." /bin/true
    fi
}
case $1 in 
start)
        function_start_mysql
;;
stop)
        function_stop_mysql
;;
status)
    function_status_mysql
;;
restart)
        function_stop_mysql
        sleep 3;
        function_start_mysql
;;
*)
       echo "USAG:start|stop|restart|status"
;;
esac
/iddb/mysld_start

  腳本使用方法:

  在普通用戶下使用  sh  /iddb/mysql_start   start|stop|restart|status 可實現啟停和狀態查詢

  也可在授權/iddb/mysql_start 為可執行及755情況下 使用/iddb/mysql_start   start|stop|restart|status實現啟停和狀態查詢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM