経験豊富な人が、プロフェッショナルで標準化された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の相対パスと絶対パスの使用

推薦する

Typescript+React でモバイルと PC でシンプルなドラッグ アンド ドロップ効果を実現

この記事では、モバイルとPCで簡単なドラッグアンドドロップ効果を実現するためのTypescript ...

MySQL が暗黙のデフォルト値を処理する方法

何人かの学生は、マスターとスレーブの間の不一致の問題に遭遇したと述べました。一般的な状況としては、m...

マウスを置いたときに半透明効果のテキスト説明を実現するための純粋な CSS (初心者は必読)

効果は以下のとおりです。 例1 例2:例1[結婚式の計画]を例にとるHTML: <div cl...

ウェブ上でチャートを描くための 9 つの優れた JavaScript フレームワーク スクリプト

ウェブ上でチャートを描くための 9 つの優れた JavaScript フレームワーク スクリプト 1...

Canonical が Flutter で Linux デスクトップ アプリを有効化 (推奨)

Google の Flutter の目標は、どのプラットフォームを使用していても、ネイティブの速度...

XHTML CSSを使用して正式なブログを書く

ブログの正式名称は「Web log」で、中国語で「ネットワークログ」を意味します。後にブログに短縮さ...

JavaScriptでよく使われる配列重複排除実戦ソースコード

アレイの重複排除は、通常、就職面接中に遭遇し、アレイの重複排除方法のコードを手動で記述することが求め...

JavaScript+html はフロントエンドページでランダム QR コード検証を実装します

クールなフロントエンドページのランダムQRコード検証を参考までに共有します。具体的な内容は次のとおり...

iframeをカプセル化するvueコンポーネントを開発する

目次1. コンポーネントの紹介2. コンポーネントの内部構造とロジック1. コード組織構造2. マッ...

Windows での MySQL 8.0.11 インストール チュートリアル

この記事は、WindowsでのMySQL 8.0.11のインストールチュートリアルを記録しています。...

JavaScriptの擬似配列と配列の使い方と違い

擬似配列と配列JavaScript では、5 つのプリミティブ データ型を除き、関数を含め、その他す...

Linuxサービスの監視と運用および保守

目次1. psutilパッケージをインストールする次に、オペレーティングシステム内のすべてのサービス...

Windows で MySQL 5.7.17 圧縮バージョンをインストールするときに遭遇する落とし穴

まず、Windows 64 ビット用の最新の MySQL 5.7.17 コミュニティ圧縮バージョンを...

MySQL でのトランザクションの使用方法

基礎トランザクションは、SQL ステートメントのグループに対するアトミック操作です。つまり、グループ...

JS 面接の質問: forEach はループから抜け出すことができますか?

この質問をされたとき、私は無知で頭が真っ白になりました。もちろん、正しく答えられませんでした。私はず...