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 のヒント (非常に実用的)

推薦する

2 つの Linux サーバー間の自動ファイル同期

サーバーB(172.17.166.11)の電源がオンまたは再起動されると、サーバーA(172.17....

HTML に画像が存在しない場合にデフォルトの画像を表示する方法の例

画像リンク <img src="" /> jsを使用してURLが有効...

HTMLタグの説明

HTMLタグの説明1. HTMLタグタグ: !DOCTYPE説明: HTML ドキュメントが準拠する...

自作の Windows サーバーに egg アプリケーションを展開する方法 (画像とテキスト付き)

1. IEブラウザを使用してVPNにログインする 2. リモートログイン 3. サーバーに最新のn...

Javascript での JSBridge に関する予備的研究

目次JSBridgeの起源JSBridgeの双方向通信原理JSはネイティブを呼び出すネイティブコール...

フレックスとポジションの互換性の詳細な説明マイニングノート

今日は、すべてのブラウザ (主に IE 9 以上と Chrome) と互換性のある自分のホームページ...

大きな太陽の天気アイコンを純粋な CSS で記述する方法の例

効果効果図は以下のとおりです実装のアイデアDivは太陽の長方形の光と影を実現します前の疑似要素は、既...

Bootstrap 3.0 学習ノート CSS関連補足

この記事の主な内容は次のとおりです。 1. ブラウザのサポート2. 画像3. レスポンシブツール4....

DockerはRedisをインストールし、操作用のビジュアルクライアントを導入します

1 はじめにRedis 、 ANSI C言語で開発されたKey-Valueベースの高性能NoSQLデ...

CSSを使用して炎の効果を作成する方法

本文は以下から始まります。 123WORDPRESS.COM ダウンロード:純粋な CSS3 で超リ...

Linuxファイル削除後にスペースが解放されない問題の詳しい説明

序文システム領域の使用量が大きすぎて消去する必要がある場合、または特定のファイルを消去する必要がある...

Reactのコンポーネント作成方法のまとめ

目次1. 関数を使用してコンポーネントを作成する2. クラスを使用してコンポーネントを作成する3. ...

CentOS 6 は Docker を使用して Redis マスター スレーブ データベース操作例を展開します

この記事では、Docker を使用して Centos6 に Redis マスター/スレーブ データベ...

Windows システムの MySQL が中国語を入力および表示できない問題の解決方法

ステップ 1: メモ帳を使用して、MySQL インストール ディレクトリの「my.ini」ファイルを...

Vue+ElementUI Treeの使い方

Vue+ElementUI Treeの使い方は参考までに。具体的な内容は以下のとおりです。 フロント...