経験豊富な人が、プロフェッショナルで標準化されたMySQL起動スクリプトの開発方法を紹介します。

経験豊富な人が、プロフェッショナルで標準化されたMySQL起動スクリプトの開発方法を紹介します。

シェル スクリプト言語は、すべてのプログラミング言語の中で最も単純な言語であるため、資格のある Linux 運用および保守担当者は、シェル スクリプト プログラミングに精通している必要があります。シェル スクリプトが優れていなければ、運用および保守の道は始まる前に終わってしまう可能性があります。 ——老人教師

#!/bin/bash
# chkconfig: 2345 64 36 #システムの自動起動を構成する# 説明: 非常に高速で信頼性の高い SQL データベース エンジン。
##############################################################
# ファイル名: mysqld
# バージョン: V1.0
# 著者: oldboy
# 組織: www.oldboyedu.com
# 作成日時 : 2018-06-05 08:58:19
##############################################################
#システム関数ライブラリを導入します。/etc/init.d/functions

#基本パス定義 basedir='/application/mysql'
バインドディレクトリ='/application/mysql/bin'
ロックディレクトリ='/var/lock/subsys'                    
lock_file_path="$lockdir/mysql"
mysqld_pid_file_path='$basedir/data/`uname -n`.pid'

#成功プロンプト関数 log_success_msg(){
  #action は特別なプロンプト関数、$@ はすべてのパラメーターです。
  アクション "成功!$@" /bin/true
}
#失敗プロンプト関数 log_failure_msg(){
  アクション "ERROR! $@" /bin/false
 }
 
#mysql 開始関数 start(){
  echo $"MySQL を起動しています"
  #mysqld_safeが実行可能かどうかをテストする if test -x $bindir/mysqld_safe
  それから
    #バックグラウンド実行でmysqlコマンド$bindir/mysqld_safe &>/dev/null &が開始されます
    #戻り値を取得します retval=$?
    # 戻り値が0かどうか確認する
    [ $retval -eq 0 ]の場合
    それから
      #成功プロンプト関数を呼び出します。
      log_success_msg "mysql 起動"
      if test -w "$lockdir" #ロックディレクトリが書き込み可能かどうかを判断します。
      それから
        touch "$lock_file_path" #ロックファイルを作成します。
      フィ
      return $retval #戻り値を返すのはプロフェッショナルな行為です。
    それ以外
      log_failure_msg "MySQL 起動" #関数呼び出しが失敗したことを通知します。
      $retvalを返す
    フィ
  それ以外
    log_failure_msg "MySQL サーバーが見つかりませんでした ($bindir/mysqld_safe)"
  フィ
}
#MySQL 機能を停止します。
停止(){
  #mysql pid ファイルのサイズが 0 かどうかを判断します。
  テスト -s "$mysqld_pid_file_path" の場合
  それから
    #pidfile を読み込む
    mysqld_pid=`cat "$mysqld_pid_file_path"`
    #mysql pidに対応するプロセスが存在するかどうかを判断します。
    (kill -0 $mysqld_pid 2>/dev/null)の場合
    それから
      echo $"MySQL をシャットダウンしています"
      kill $mysqld_pid #MySQL コマンドを停止します。
      戻り値=$?
      [ $retval -eq 0 ]の場合
      それから
        log_success_msg "MySQL Stop" #停止成功関数を呼び出します。
        テスト -f "$lock_file_path"
        それから
          rm -f "$lock_file_path" #ロックファイルを削除します。
        フィ
        $retvalを返す
      それ以外
        log_failure_msg「MySQL 停止。」
        $retvalを返す
      フィ
    それ以外
      log_failure_msg "MySQL サーバー プロセス mysqld_pid が実行されていません!"
      rm "$mysqld_pid_file_path"
    フィ 
  それ以外
    log_failure_msg "MySQL サーバーの PID ファイルが null か、存在しません!"
  フィ
}
#渡されたパラメータを受け取り、対応する関数を実行します。
ケース「$1」
  始める)
    始める
    戻り値=$?
    ;;
  停止)
    停止
    戻り値=$?
    ;;
  再起動)
    停止
    睡眠2 #これはとても重要です。休憩してください。
    始める
    戻り値=$?
    ;;
  *)
    echo $"使用法:$0 {start|stop|restart}"
    出口2
エサック
exit $retval #スクリプトを実行した後、戻り値を持つ方がプロフェッショナルです。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL 使用仕様の概要
  • 超詳細なMySQL使用仕様の共有
  • MySQLデータベースの使用仕様の概要
  • MySQL開発標準と使用スキルの概要
  • MySQL データベース開発仕様 [推奨]
  • MySQL データベースの命名標準と規則
  • Mysql テーブル作成とインデックス使用仕様の詳細な説明
  • MYSQL データベースの命名と設計仕様
  • プロフェッショナルなMySQL開発設計仕様とSQL記述仕様

<<:  jQueryはネストされたタブ機能を実装します

>>:  Linuxの相対パスと絶対パスの使用

推薦する

Linux リモート管理と sshd サービス検証の知識ポイントの詳細な説明

1. SSHリモート管理SSH の定義SSH (Secure Shell) は、主にキャラクタ イン...

Nginx 経由で Tomcat9 クラスターを構築し、セッション共有を実現する

Nginx を使用して Tomcat9 クラスターを構築し、Redis を使用してセッション共有を実...

Vueのフロントエンドとバックエンドのポートの不一致の問題を解決する

Vue のフロントエンドとバックエンドのポートが一致していませんconfig index.jsファイ...

jQuery キャンバスは QR コード付きのポスターを生成します

この記事では、jQuery キャンバスを使用して QR コード付きのポスターを生成するための具体的な...

docker ストレージを使用して Exit を実行すると、サーバーへのファイルのアップロードが失敗する問題と解決策

1. 問題の説明Docker コンテナにインストールされているストレージが終了状態になっているため、...

テキストエリア テキストエリアの幅と高さ 幅と高さの自動適応実装コード

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

mysql の存在する例と存在しない例の詳細な説明

mysql の存在する例と存在しない例の詳細な説明テーブルA |列1 | 列1 | 列3 |テーブル...

Day.js をベースにした JavaScript での日付処理のよりエレガントな方法

目次day.js を使用する理由モーメントデイ.js day.js がなければどうなるでしょうか? ...

MySQL における INSERT INTO SET の利点

MySQL データベースにデータを挿入します。以前はよく使われていた INSERT INTO テーブ...

HTML シンプルな Web フォーム作成例の紹介

<input> はユーザー情報を収集するために使用され、終了ステートメントはありません。...

mysql8.x docker リモートアクセスの詳細な設定

目次環境条件エラーが発生しました回避策1. mysql dockerにログインする2. ルートパスワ...

MySQL無料インストール版のパスワード設定に関する詳細なチュートリアル

方法1: SET PASSWORDコマンドを使用する MySQL -u ルート mysql> ...

CPU、マシンモデル、メモリなどの情報を表示するLinuxシステム

システムメンテナンス中は、いつでも CPU 使用率を確認し、対応する情報に基づいてシステムの状態を分...

Vue モバイル開発で better-scroll を使用するときにクリック イベントが失敗する問題の解決策

最近、モバイル プロジェクトの開発方法を学ぶために vue を使用し、スクロールには better-...

HTML チュートリアル: title 属性と alt 属性

XHTML は CSS レイアウトの基礎です。jb51.net は常に XHTML 知識の習得を重視...