MySQL の起動オプションとシステム変数の例の詳細な説明

MySQL の起動オプションとシステム変数の例の詳細な説明

この記事では、MySQL の起動オプションとシステム変数について説明します。ご参考までに、詳細は以下の通りです。

MySQL 構成情報は 2 つの方法で実装できます。1 つはコマンド ライン形式です。これは、MySQL サービスを開始した後に関連する構成パラメータを取得します。この方法は、MySQL を再起動すると無効になります。もう 1 つの方法は、my.cnf などの構成ファイルに書き込むことです。これは、MySQL サービスを起動または再起動すると有効になります。この方法は永続的です。

ブートオプション

コマンドライン

MySQLサービスコマンドを起動するときに、設定パラメータを設定します。

起動方法については、こちらの記事を参照してください:MySQLの起動と接続方法

コマンド形式:
起動コマンド --startup オプション 1 [= 値 1] --startup オプション 2 [= 値 2] ... --startup オプション n [= 値 n]
例えば:
mysqld --default-storage-engine=MyISAM //デフォルトのストレージエンジンを設定する
間違った例:
mysqld --default-storage-engine = MyISAM //デフォルトのストレージエンジンを設定する理由:
スタートアップ項目の等号と値の間にスペースを入れることはできないため

パラメータの長い形式と短い形式

構成パラメータには長い形式と短い形式があります。 機能は同じでも書き方が異なるものもあります。
--host => -h //ホスト--port => -P //ポート--user => -u //ユーザー--password => -p //パスワード--version => -V //バージョン......
例:
mysqld --port=3306
mysqld -P3306
mysqld -P 3306
知らせ:
パスワードにはスペースを含めることはできません。mysqld -proot

設定ファイル

設定ファイル my.cnf の場所は次のようになります。MySQL サービスの起動時に設定ファイルが指定されていない場合は、次の場所から検索、読み取り、初期化されます。
* /etc/my.cnf 
* /etc/mysql/my.cnf
* defaults-extra-file // 指定された追加の構成ファイル パス* SYSCONFDIR/my.cnf // cmake のコンパイルとインストール状況* $MYSQL_HOME/my.cnf // 環境変数の設定、デフォルトのインストール パス* ~/.my.cnf // ユーザー固有のオプション、ホーム ディレクトリ* ~/.mylogin.cnf // ユーザー固有のログイン パス オプション (クライアントのみ)、mysql_config_editor によって変更され、純粋なファイルではない

知らせ

1. 設定ファイルで指定する起動オプションには -- をプレフィックスとして付けることはできません。また、1 行に 1 つのオプションのみ指定でき、= の前後に空白文字を置くことができます。
2. 複数の設定ファイルで同じ起動オプションを設定した場合、最後の設定ファイルが優先されます。
3. コマンドラインと構成ファイルの両方に同じ起動オプションが指定されている場合は、コマンドラインの起動オプションが優先されます。
4. mysqld --defaults-file=/tmp/myconfig.txt
// プログラムが起動すると、/tmp/myconfig.txt パス内の構成ファイルのみが検索されます。ファイルが存在しないかアクセスできない場合はエラーが発生します

構成グループ

設定ファイルには、mysqld、mysqld_safe、mysql.server、mysql、mysqladmin、mysqldump などのグループを設定できます。また、異なるグループに対して設定することもできます。

コンテンツ形式
[サーバ]
(特定の起動オプション...)
[mysqld]
(特定の起動オプション...)
[mysqld_safe]
(特定の起動オプション...)
[クライアント]
(特定の起動オプション...)
[mysql]
(特定の起動オプション...)
[mysqladmin]
(特定の起動オプション...)
例:
[mysqld]
pid ファイル = /var/run/mysqld/mysqld.pid
ソケット = /var/run/mysqld/mysqld.sock
データディレクトリ = /var/lib/mysql
ログエラー = /var/log/mysql/error.log
#構成を最適化 wait_timeout=10
バックログ=600
キーバッファサイズ = 2048M
読み取りバッファサイズ = 100M
最大許容パケット = 1000M
スレッドスタック = 192K
スレッドキャッシュサイズ = 4
myisam-recover-options = バックアップ
最大接続数 = 4000
最大ユーザー接続数 = 0
最大接続エラー数 = 65535
オープンファイル制限 = 10240
......

知らせ
1. [server] グループの起動オプションは、mysqld、mysqld_safe、mysql.server などのすべてのサーバー プログラムに適用されます。
2. [client]グループの起動オプションは、mysql、mysqladmin、mysqldumpなどのすべてのクライアントプログラムに適用されます。
3. 同じ設定ファイル内の複数のグループの優先順位は、最後に表示されるグループの起動オプションに基づいて決定されます。

システム変数

MySQL サーバー プログラムは、動作中にプログラムの動作に影響を与える多くの変数を使用します。これらは MySQL システム変数と呼ばれます。

例えば:
1. 同時に接続できるクライアントの数は、システム変数max_connectionsで示されます。
2. テーブルのデフォルトのストレージエンジンは、システム変数default_storage_engineで表されます。
3. クエリキャッシュのサイズはシステム変数query_cache_sizeで表されます。
......

チェック

形式:
SHOW VARIABLES [LIKE 一致パターン];
例えば:
'default_storage_engine' のような変数を表示します。 

設定

スタートアップ設定経由

コマンドライン設定
mysqld --default-storage-engine=MyISAM --max-connections=10
プロフィール設定
[mysqld]
デフォルトのストレージエンジン = MyISAM
最大接続数 = 10
......

知らせ:
スタートアップ オプションの場合、スタートアップ オプション名が複数の単語で構成されている場合は、単語をハイフン - またはアンダースコア _ で接続できますが、対応するシステム変数の単語はアンダースコア _ で接続する必要があります (つまり、show で表示する場合、または set で設定する場合)。

サーバープログラムの実行中に設定

システム変数の優れた点は、ほとんどのシステム変数では、サーバーを停止して再起動することなく、サーバーの実行中にその値を動的に変更できることです。

ただし、システム変数にはグローバル スコープと現在のセッション スコープがあります。

範囲

GLOBAL: サーバーの全体的な操作に影響するグローバル変数。
SESSION: クライアント接続の操作に影響するセッション変数。 (別名: LOCAL)
形式:
1. SET [GLOBAL|SESSION] システム変数名 = 値;
2. SET [@@(GLOBAL|SESSION).]var_name = XXX;
グローバル
例えば:
1. GLOBAL default_storage_engine = InnoDB を設定します。
2. @@GLOBAL.default_storage_engine を InnoDB に設定します。
セッション
例えば:
1. SET SESSION default_storage_engine = InnoDB;
2. @@SESSION.default_storage_engine = InnoDB を設定します。
3. SET default_storage_engine = InnoDB; //デフォルトセッション
チェック
形式: SHOW [GLOBAL|SESSION] VARIABLES [LIKE 一致パターン];
1. 'default_storage_engine' のようなセッション変数を表示します。
2. 'default_storage_engine' のようなグローバル変数を表示します。
知らせ:
クライアントがGLOBALスコープ内のシステム変数の値を変更した場合、現在接続しているクライアントのSESSIONスコープ内のシステム変数の値には影響しませんが、後続のクライアントのSESSIONスコープ内のシステム変数の値にのみ影響します。
追加メモ
すべてのシステム変数に GLOBAL および SESSION スコープがあるわけではありません。

* 一部のシステム変数は、グローバルスコープのみを持ちます。たとえば、max_connectionsは、サーバープログラムが同時に接続できるクライアントプログラムの最大数を示します。
* 一部のシステム変数には、AUTO_INCREMENT 列を含むテーブルに挿入するときに列の初期値を示す insert_id など、SESSION スコープのみがあります。
* 一部のシステム変数には、先ほど使用したdefault_storage_engineのようにGLOBALとSESSIONの両方のスコープがあり、実際ほとんどのシステム変数は次のようになります。

一部のシステム変数は読み取り専用であり、設定できません。

たとえば、version は現在の MySQL バージョンを示します。クライアントはその値を設定できず、SHOW VARIABLES ステートメントでのみ表示できます。

起動オプションとシステム変数の関係
起動オプションは、プログラムの起動時にプログラマーが渡すパラメータであり、システム変数はサーバー プログラムの実行動作に影響を与える変数です。

* ほとんどのシステム変数は起動オプションとして渡すことができます
* auto_increment_offset、character_set_client など、一部のシステム変数はプログラム実行中に自動的に生成され、起動オプションとして設定することはできません。
* 一部の起動オプションはシステム変数ではありません。例えば、defaults-file

状態変数

サーバー プログラムの動作をよりよく理解できるように、MySQL サーバー プログラムは、プログラムの実行ステータスに関する多くの変数 (ステータス変数と呼ばれる) を保持しています。

たとえば、Threads_connected は現在サーバーに接続しているクライアントの数を示し、Handler_update は更新された行の数を示します。

ステータス変数はサーバープログラムの実行状態を表示するために使用されるため、その値はサーバープログラム自体によってのみ設定でき、私たちプログラマーが設定することはできません。

チェック

形式:
SHOW [GLOBAL|SESSION] STATUS [LIKE matched_pa​​ttern];
例えば:
'thread%' のようなステータスを表示します。

MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL 共通関数の概要」、「MySQL ログ操作スキル」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキル」、および「MySQL データベース ロック関連スキルの概要」

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • MySQL マルチインスタンス構成ソリューション
  • MySQLデータベース入門:マルチインスタンス構成方法の詳しい説明
  • MySQL 8.0 のインストールと設定のチュートリアル
  • MySQL5.7 シングルインスタンス自動起動サービスの設定プロセス

<<:  Alibaba Cloud Server の詳細な展開 (グラフィック チュートリアル)

>>:  Vueはプログレスバーの変更効果を実現します

推薦する

Linux で履歴コマンドを表示および実行する方法

履歴コマンドを表示し、指定されたコマンドを実行します owen@owen:~/owen/softwa...

MySql が常に mySqlInstallerConsole ウィンドウをポップアップする問題の解決策

MySql は常に MySQLInstallerConsole.exe ウィンドウを定期的にポップア...

MAC で MySQL のデフォルトの文字セットを utf8 に変更する方法

1. デフォルトでインストールされているMySQLの文字セットを確認するmysql> '...

MYSQLストアドプロシージャコメントの詳細な説明

目次1. 使用方法2. 準備3. 文法3.1 変数と代入3.2 入力および出力パラメータ3.3 プロ...

MySQL の 2 種類の一時テーブルの使用方法の詳細な説明

外部一時テーブルCREATE TEMPORARY TABLE によって作成された一時テーブルは、外部...

Reactフックの仕組み

目次1. React フックと純粋関数2. シンプルなmyUseState 3. myUseStat...

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

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

Dockerを使用してNextCloudネットワークディスクを展開する方法

NextCloud コンピュータ上の任意のファイルやフォルダを共有し、NextCloud サーバーと...

Vueでlessを使用する問題を解決する

1. less依存関係をインストールします: npm install less less-loade...

Echarts バー水平棒グラフのサンプルコード

目次横棒グラフデータとスタイルを動的に更新するeChartsの幅と高さの適応の問題を解決する縦棒グラ...

CSSにおけるマージン値と垂直マージンの重なりについて

平行ボックスの余白 (二重余白の重なり) に関する面接の質問: 1 つのボックスに上余白があり、もう...

MySQLデータベースのリアルタイムバックアップの知識ポイントを詳しく解説

序文リアルタイムのデータベース バックアップの必要性は非常に一般的です。MySQL 自体はレプリケー...

MySQLデータベース最適化技術の簡単な紹介

成熟したデータベース アーキテクチャは、最初から高可用性、高スケーラビリティなどの機能を備えて設計さ...

HTML 5 プレビュー

<br />オリジナル: http://www.alistapart.com/artic...

JSで画面録画機能を作成する

OBS studioかっこいいですが、 JavaScriptもっとかっこいいです。では、 JavaS...