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

推薦する

Linux で TCP 接続の最大数をテストする方法

序文TCP サーバの最大同時接続数に関して、「ポート番号の上限が 65535 であるため、TCP サ...

LinuxでDHCPサーバーを構築する方法

目次1. 基礎知識: 2. DHCPサーバーの設定: 1. サーバーのIPを確認する2. DHCP ...

MySQLの大文字と小文字の区別によって発生する問題の分析

MYSQLは大文字と小文字を区別します言葉を見れば信じられます。タイトルを見れば内容がわかります。 ...

Vant+postcss-pxtoremはブラウザ適応機能を実装します

Remレイアウトの適応Vant のスタイルでは、デフォルトで px を単位として使用します。rem ...

Ubuntuがインターネットに接続できない場合の解決策

問題の説明:デスクトップ コンピューターとキャンパス ネットワークを使用して、有線モードでインターネ...

MySQL 5.7 および MySQL 8.0 でルートパスワードを変更する方法の概要

MySQL 5.7 バージョン:方法1: SET PASSWORDコマンドを使用するフォーマット: ...

js キャンバスはランダムなパーティクル効果を実現します

この記事の例では、参考のためにjsキャンバスランダムパーティクルエフェクトの具体的なコードを共有して...

MySQLグループリンクの使用に関する詳細な説明

MYSQL におけるグループ化とリンクは、データベースの操作やデータのやり取りで最もよく使用される ...

Linuxは数字当てゲームのソースコードを実装する

シンプルな Linux 推測ゲームのソースコードゲームのルール:数字当てゲームは通常 2 人でプレイ...

Centos7 システムでの MySQL マスター スレーブ同期構成スキーム

序文最近、高可用性プロジェクトに取り組む際には、データの同期が必要になっています。ノードが 2 つし...

VueはWebSocketを使用してチャット機能をシミュレートします

この効果は、2つのブラウザが互いにシミュレートしていることを示しています 1. シミュレートされたノ...

CSS セレクタの 4 つのカテゴリ: 基本、組み合わせ、属性、疑似クラス

セレクターとは何ですか?セレクターの役割は、セレクターを介して要素を見つけ、CSS スタイルを要素に...

WeChatアプレットに2048ミニゲームを実装する詳細なプロセス

レンダリング サンプルコード今日は、WeChat アプレットを使用して 2048 ゲームを実装します...

SSH接続を介してXshellを使用したUbuntu 20.04で報告されたサービス問題の詳細な説明

1. 最近、Ubuntu の新しいバージョンをインストールしました。/etc/ssh/sshd_co...

クロスブラウザローカルストレージⅠ

原文: http://www.planabc.net/2008/08/05/userdata_beh...