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はプログレスバーの変更効果を実現します

推薦する

Web フォントの読み込みを最適化する方法をご存知ですか?

タイトル通りです!一般的に使用される font-family はブラウザの組み込みフォントを読み込み...

Nginx 502 Bad Gateway エラーの原因と解決策

Nginx 502 Bad Gateway エラーに何度か遭遇しました。ここでメモしておこうと思いま...

MySQL の 4 つのトランザクション分離レベルの詳細な説明

この実験のテスト環境: Windows 10+cmd+MySQL5.6.36+InnoDB 1. ト...

MySQLデータベースのストアドプロシージャとトランザクションの違い

トランザクションは、複数の SQL ステートメントの原子性、つまり、それらが一緒に完了するか、一緒に...

Alibaba Cloud に MySQL データベースをインストールするときに発生する 2002 エラーを解決する方法

データベースのインストール中に次のエラーが発生しました: 解決策は次のとおりです。 1. binディ...

OneProxy に基づいて MySQL の読み取り/書き込み分離と負荷分散を実装する

導入パート1: 冒頭に書いたOneProxy は、民間ソフトウェアによって完全に独立して開発された分...

空のパスがページのパフォーマンスに与える影響に対する解決策

数日前、Google Reader で Yu Bo さんが共有した投稿「空のパスがページのパフォーマ...

vscodeで保存した後のHTML自動フォーマットの問題を解決する

vsCode のバージョンは最近更新され、現在のバージョン番号は 1.43 です。実際、vsCode...

jQueryは記事の折りたたみと展開の機能を実装します

この記事の例では、記事の折りたたみと展開の機能を実現するためのjQueryの具体的なコードを参考まで...

JSはプログレスバーのスムーズバージョンの詳細な計画を実装します

進捗バーがスムーズではないフロントエンドを学ぶ学生のほとんどは、オーディオプレーヤーやビデオプレーヤ...

Mysql データベースのマスタースレーブ同期構成

目次Mysql マスタースレーブ同期構成1. 2つのmysqlをインストールする2. MySQL設定...

MySQL5.7 シングルインスタンス自動起動サービスの設定プロセス

1.MySQLのバージョン [root@clq システム]# mysql -v MySQL モニター...

HTML 順序なしリスト 箇条書き 画像を使用した CSS の記述

少なくとも 5 冊のベストセラー書籍の順序なしリストを含む HTML ページを作成します。各書籍の前...

表のセルの内容が超過した場合に省略記号効果を表示する(実装コード)

例示するフロントエンド開発では、セルの幅を制限し、コンテンツが制限を超える部分に省略記号を表示する必...