MySQL が my.cnf を読み込む順序の詳細

MySQL が my.cnf を読み込む順序の詳細

MySQLがmy.cnfを読み込む順序

1. mysql.server の起動方法

ベースディレクトリ=/opt/mysql/mysql3315
データディレクトリ=/opt/mysql/mysql3315/data

検索するには、パラメータファイルを解析するときに-eが解析に導入されます。

/opt/mysql/mysql3315/bin/my_print_defaults -e /opt/mysql/mysql3315/my.cnf mysqld サーバー mysql_server mysql.server

つまり、--defaults-extra-fileでは、取得したディレクトリにはbasedir、datadir、pid-fileが含まれますが、pid-fileパラメータは存在しない可能性があります。

以下のように使用します

テスト -z "$mysqld_pid_file_path" の場合
それから
  mysqld_pid_file_path=$datadir/`ホスト名`.pid
それ以外
  ケース「$mysqld_pid_file_path」
    /* ) ;;
    * )mysqld_pid_file_path="$datadir/$mysqld_pid_file_path" ;;
  エサック
フィ

場所とファイル名を変換します。最終的なパラメータは次のとおりです。

/opt/mysql/mysql3315/bin/mysqld_safe --datadir=/opt/mysql/mysql3315/data/ --pid-file=/opt/mysql/mysql3315/data//mgr4.pid

2. mysqld_safeの起動方法

  • mysqld_safeの場所を逆にしてbasedirディレクトリを取得し、MYSQL_HOMEをbasedirに設定します。
  • パラメータ ファイルを解析するときに取得するパラメータは多数あるため、ここではリストされません。
/opt/mysql/mysql3315/bin/my_print_defaults mysqld サーバー mysql_server mysql.server

注: MYSQL_HOME ディレクトリは、その下のパラメータ ファイルを自動的に解析するため、ここでは -e は設定されません。解析場所は最後に表示されます。

  • mysqldを起動する
nohup /opt/mysql/mysql3315/bin/mysqld --basedir=/opt/mysql/mysql3315 --datadir=/opt/mysql/mysql3315/data 
--plugin-dir=/opt/mysql/mysql3315/lib/plugin --user=mysql 
--log-error=/opt/mysql/mysql3315/logs/mysql3315.err --pid-file=/opt/mysql/mysql3315/data//mgr4.pid 
--socket=/opt/mysql/mysql3315/data/mysql3315.sock --port=3315

注意: open_files_limitsが設定されている場合、open_file_limitsはmysqldが使用するパラメータファイルの設定を上書きするために使用されます。

  • ループ監視 pid ファイル

起動後、以下のループが実行されます。eval コマンドを使用して、mysqld への呼び出しをブロックします。プロセスが終了した場合は、戻ってループ判定を実行します。最後に、pid が存在するかどうか、および mysqld の正常なシャットダウンかどうかを判断します。判定方法は、kill -0 pid で、mysqld プロセスが存在するかどうかを判断します。存在しない場合は、プルアップします。

真実である
する
  エコー1
  start_time=`日付 +%M%S`
  eval_log_error "$cmd"
  • jemallocのロードについて
[ -n "$mysqld_ld_library_path" ]の場合;
  new_text="$mysqld_ld_library_path"
  [ -n "$LD_LIBRARY_PATH" ] && new_text="$new_text:$LD_LIBRARY_PATH"
  text="${text}LD_LIBRARY_PATH="`shell_quote_string "$new_text"`' '
フィ

  • mysqld_safeを使用して自分で起動する
「」
/home/work/ssd1/mysql/install/bin/mysqld_safe --defaults-file=/home/work/ssd1/mysql/etc/3307/my.cnf --socket=/home/work/ssd1/mysql/sock/3307/mysql.sock --datadir=/home/work/ssd1/mysql/data/3307 --user=mysql &

my_print_defaultsをこのように起動すると、--defaults-fileが呼び出されます。

/opt/mysql/mysql3320/install/bin/my_print_defaults --defaults-file=/home/work/ssd1/mysql/etc/3307/my.cnf --loose-verbose mysqld サーバー

3. mysqld と my_print_defaults が my.cnf を読み込む順序について

実際、この関数init_default_directories関数
順序は次のとおりです。

<—defaults-file が最初に読み込まれ、この設定ファイルのみを読み取り、最初のオプションになります>

  • /etc/my.cnf
  • phpMySQL の mysql.cnf ファイル
  • コンパイル時設定の DEFAULT_SYSCONFDIR my.cnf
  • MYSQL_HOME 設定。 mysqld_safe は MYSQL_HOME を設定し、次の my.cnf を読み取ります。
  • --defaults-extra-file 設定、my_print_defaults、mysqld は両方ともこれによって設定されます。
  • 〜/.my.cnf
  • 解析の順序から、コマンドラインパラメータは最後に読み込まれます。

解析が完了すると、すべてのパラメータがリストされます。同じ名前のパラメータが複数ある場合は、最後のパラメータが有効になります。

MySQL が my.cnf を読み込む順序の詳細についての記事はこれで終わりです。MySQL が my.cnf を読み込む順序の詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • シェルスクリプトを使用して、mysql を追加、削除、変更、チェックし、my.cnf を構成します。
  • Linux に mysql をインストールするときに /etc に my.cnf ファイルがない問題を解決する
  • MySQL 5.7 の /etc/my.cnf パラメータの紹介
  • 権限の問題によりMySQLの設定ファイルmy.cnfを起動できない問題の解決方法
  • MySQL サービスのパフォーマンス最適化 - my.cnf_my.ini 構成手順 (16G メモリ)
  • MySQL my.cnf 設定を変更しても効果がない問題の解決策
  • MySQL 5.5.x my.cnf パラメータ設定の最適化の詳細
  • MySQL 設定ファイル my.cnf の最適化の詳細な説明 (mysql5.5)
  • MySQL パフォーマンス最適化の道 --- 設定ファイル my.cnf を変更する
  • MariaDB (MySQL ブランチ) my.cnf 構成ファイルの中国語注釈付きバージョン
  • MySQL 設定ファイル my.cnf パラメータの最適化と中国語の詳細な説明
  • MySQL 設定ファイル my.cnf の中国語での詳細な説明と、MySQL パフォーマンスの最適化方法の共有
  • MySQL 設定ファイル my.cnf の中国語版の比較
  • MySQL 構成パラメータ my.ini/my.cnf の詳細な分析

<<:  iframeを使用してページを呼び出すとページがキャッシュされるかどうかの簡単な分析

>>:  アニメーションの再生と一時停止を制御するための CSS のヒント (非常に実用的)

推薦する

インデックススキャンを使用したMySQLソート

目次sakilaをインストールするインデックススキャンソートテーブル構造インデックススキャンをソート...

MySQLにおけるテーブルインデックスの定義方法と導入

概要インデックスは、テーブル内の 1 つ以上の列に基づいて DBMS によって特定の順序で作成される...

ネイティブ CSS で無限テキストカルーセルを実装する一般的な方法

テキストカルーセルは私たちの日常生活で非常に一般的です。スーパーマーケットや実店舗の入り口には、テキ...

MySQLの共有ロックと排他ロックの使用例の分析

この記事では、例を使用して MySQL の共有ロックと排他ロックの使用方法を説明します。ご参考までに...

Linux環境でのActiveMQ導入方法の詳しい説明

この記事では、Linux 環境での ActiveMQ の展開方法について説明します。ご参考までに、詳...

JavaScript ツールチェーンの不完全なガイド

目次概要静的型チェックコードスタイルチェック(Linter)パッケージマネージャーモジュールローダー...

シンプルな広告ウィンドウを実現するjs

この記事では、参考までに、シンプルな広告ウィンドウを実装するためのjsの具体的なコードを紹介します。...

子コンポーネントを通じて親コンポーネントのプロパティを変更するための Vue のさまざまな実装方法

目次序文一般的な方法1. 親コンポーネントを介して子コンポーネントの発行イベントをリッスンしてpro...

Docker実践: Pythonアプリケーションのコンテナ化

1. はじめにコンテナはサンドボックス メカニズムを使用して相互に分離します。コンテナ内にデプロイさ...

MySQL 半同期レプリケーションの原理構成と導入の詳細な説明

環境の紹介: Ubuntu Server 16.04.2+MySQL 5.7.17 コミュニティ サ...

CSS を使用して 3 列レイアウトを実装するサンプル コード。中央の列は適応型で、テキスト サイズに応じて幅が変わります。

Baiduのインタビューで遭遇する質問は、次のレイアウト効果を達成する必要がある。 中央の紫色の列...

Windows10のマウスを模倣して境界線を光らせる効果を実現するCSSの詳細解説

最新の Windows 10 アップデートをインストールした後、システム UI の詳細な効果が顕著に...

Vue2.x および Vue3.x のカスタム命令の使用方法とフック関数の原理を理解する

目次Vue2.x の使用法グローバル登録部分登録使用フック機能フック関数のパラメータVue3.x の...

WeChatアプレット開発の共通機能と使用方法のまとめ

ここでは、主に小さなプログラムの開発プロセスでよく使われる、非常に実用的な機能ポイントをいくつか整理...

要素の読み込み効果を実現するための純粋なHTML+CSS

これは Element UI の読み込みコンポーネントのエフェクトです。かっこいいですね。実装してみ...