<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • MySQL中如何實(shí)現(xiàn)service啟動(dòng)腳本-創(chuàng)新互聯(lián)

            這篇文章主要介紹了MySQL中如何實(shí)現(xiàn)service啟動(dòng)腳本,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

            成都創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè)|網(wǎng)站維護(hù)|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋成都電動(dòng)窗簾等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身建設(shè)品質(zhì)網(wǎng)站。

            我們?cè)诖罱∕ySQL環(huán)境的時(shí)候,一般都會(huì)按照建議的標(biāo)準(zhǔn)規(guī)范來做,比如拷貝mysql.server到自啟動(dòng)目錄下。

            cp -rf $basedir/support-files/mysql.server /etc/init.d/mysql

            然后設(shè)置MySQL自啟動(dòng)的服務(wù),配置完成之后就可以運(yùn)行命令service mysql.server start 來啟動(dòng)MySQL了。

            /sbin/chkconfig --add mysql
            /sbin/chkconfig --level 2345 mysql on

                當(dāng)然這個(gè)是自動(dòng)擋的操作,我們也可以手動(dòng)檔完成。我們來看看這個(gè)神奇的腳本在做些什么。腳本的內(nèi)容較長,我就列出一部分內(nèi)容來。

            首先這個(gè)文件的名字沒有直接的影響了,我們可以用mysql mysql.server等等,在這個(gè)目錄下注冊(cè)都可以正常識(shí)別。

            # service mysql status
             SUCCESS! MySQL (Percona Server) running (15924)在/etc/inid.d這個(gè)目錄下,這個(gè)mysql命名的腳本文件其實(shí)也不大,大概10K的內(nèi)容,不到400行的腳本量。   # ll mysql
            -rwxr-xr-x 1 root root 11056 Aug 28  2013 mysql我們?nèi)〕鲋攸c(diǎn)的部分來解析。

            首先這個(gè)腳本支持start,stop,restart,reload(或者是force-reload),status這個(gè)幾個(gè)選項(xiàng)。

            start的部分核心部分即為:

            # may be overwritten at next upgrade.
                  $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
                  wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?

               其實(shí)這個(gè)選項(xiàng)很容易理解了,就是mysqld_safe來啟動(dòng),需要制定幾個(gè)啟動(dòng)參數(shù),有些參數(shù)雖然為空,但是會(huì)從/etc/my.cnf中獲取,也可以支持額外的擴(kuò)展參數(shù)。

              我們修改下腳本,把這幾個(gè)參數(shù)值手工打印出來。

            分別是$bindir  $datadir  $mysqld_pid_file_path $other_args

            # service mysql  start
            Starting MySQL (Percona Server)
            /usr//bin
            /U01/mysql
            /U01/mysql/mysql.pid

            ...... SUCCESS!datadir會(huì)有一系列校驗(yàn),但是也會(huì)以/etc/my.cnf的優(yōu)先

            # cat /etc/my.cnf|grep datadir
            datadir = /U01/mysql

            另外basedir也是類似,你看my.cnf里設(shè)置的如果不夠規(guī)范,也在應(yīng)用的時(shí)候就是/usr//bin了。

            # cat /etc/my.cnf|grep basedir
            basedir = /usr/

            接下來mysqld_safe的腳本下面會(huì)有較多的校驗(yàn)。

            wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?啟動(dòng)的過程中,會(huì)在/var/lock/subsys下生成一個(gè)鎖定文件,就是一個(gè)進(jìn)程號(hào)的標(biāo)記。    
            # ll /var/lock/subsys/mysql
            -rw-r--r-- 1 root root 0 May  9 23:03 /var/lock/subsys/mysqlwait_for_pid這個(gè)函數(shù)會(huì)調(diào)用created(start模式),removed(stop模式)來處理pid文件。

             而stop模式的實(shí)現(xiàn)相對(duì)更直接一些,它是使用kill -0的方式來檢測(cè)進(jìn)程是否存在,如果存在則使用kill的命令來殺掉mysqld進(jìn)程。

             if test -s "$mysqld_pid_file_path"
                then
                  mysqld_pid=`cat "$mysqld_pid_file_path"`
                  if (kill -0 $mysqld_pid 2>/dev/null)
                  then
                    echo $echo_n "Shutting down MySQL (Percona Server)"
                    kill $mysqld_pid
                    # mysqld should remove the pid file when it exits, so wait for it.
                    wait_for_pid removed "$mysqld_pid" "$mysqld_pid_file_path"; return_value=$?
                  else
                    log_failure_msg "MySQL (Percona Server) server process #$mysqld_pid is not running!"
                    rm "$mysqld_pid_file_path"
                  fi這個(gè)過程中,后臺(tái)日志會(huì)逐步輸出,然后釋放鎖定文件。

            reload的過程使用的相對(duì)和緩,使用了kill -HUP的選項(xiàng),如果想要更改配置而不需停止并重新啟動(dòng)服務(wù),可以使用這個(gè)選項(xiàng)。

            'reload'|'force-reload')
                if test -s "$mysqld_pid_file_path" ; then
                  read mysqld_pid <  "$mysqld_pid_file_path"
                  kill -HUP $mysqld_pid && log_success_msg "Reloading service MySQL (Percona Server)"
                  touch "$mysqld_pid_file_path"
                else
                  log_failure_msg "MySQL (Percona Server) PID file could not be found!"
                  exit 1
                fi

             restart的部分就是間接調(diào)用stop和start選項(xiàng)。

            'restart')
                # Stop the service and regardless of whether it was
                # running or not, start it again.
                if $0 stop  $other_args; then
                  $0 start $other_args
                else
                  log_failure_msg "Failed to stop running server, so refusing to try to start."
                  exit 1
                fistatus的部分更簡單,就是讀取pid文件中的進(jìn)程號(hào)信息。

             不要小看這個(gè)腳本,里面涉及不少邏輯校驗(yàn),也可以在這個(gè)基礎(chǔ)上根據(jù)自己的需求來做一些改變。至少在這一點(diǎn)上,這個(gè)腳本是可以根據(jù)我們的需求來定制的。

            感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“MySQL中如何實(shí)現(xiàn)service啟動(dòng)腳本”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

            文章名稱:MySQL中如何實(shí)現(xiàn)service啟動(dòng)腳本-創(chuàng)新互聯(lián)
            網(wǎng)頁網(wǎng)址:http://www.jbt999.com/article2/eehoc.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、響應(yīng)式網(wǎng)站移動(dòng)網(wǎng)站建設(shè)、服務(wù)器托管、云服務(wù)器、網(wǎng)站排名

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

            小程序開發(fā)

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 色花av| 国产亚洲精久久久久久无码苍井空 | 苍井さくら在线一区二区 | 2018天天日天天色 | 给我下载一个三级片黄色录像毛片 |