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

推薦する

フロントエンドにアニメーション遷移効果を実装する方法

目次導入従来のトランジションアニメーションCSS トランジションアニメーションjsアニメーション従来...

TypeScript でオブジェクト キーの値の範囲を制限する方法

TypeScript を使用する場合、TypeScript が提供する型システムを使用してコードのあ...

カルーセル例の JavaScript 実装

この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...

MYSQLデータベースの最適化段階を簡単に理解する

導入面接官がこんな質問をしたことはありませんか?データベースをどのように最適化しますか?では、この質...

HTMLのフォントがline-heightを指定しても垂直方向に中央揃えできない問題の解決方法を詳しく説明します

による写真に示されている効果を例に挙げてみましょう。明らかに、「次へ」というテキストを水平方向だけで...

Mysql5.7 で中国語の文字化けの問題を解決する

MySQL 5.7 を使用すると、Web ターミナル経由でデータベースに中国語の文字を書き込むと文字...

PostgreSQL データベースにおける varchar、char、text の比較に関する簡単な説明

以下のように表示されます。名前説明する文字可変(n)、varchar(n)長さ制限あり、可変長文字(...

Vueはメニューナビゲーションを実装するためにelement-uiを使用します

この記事では、Element-uiを使用してメニューナビゲーションを実装するVueの具体的なコードを...

フラッシュコンテンツの表示に使用される OBJECT タグと EMBED タグの違いの紹介

1. はじめに:ウェブページにフラッシュ コンテンツを正常に表示したい場合は、ページ上のフラッシュ ...

CSS グリッドレイアウトの完全ガイド

Grid は 2 次元のグリッド レイアウト システムです。これを使用すると、本質的にはハック メソ...

MySQL マスタースレーブ同期における server-id の例の詳細な説明

序文MySQL クラスターを構築する場合、当然のことながら、データの一貫性を確保するために、データベ...

MySQLウィンドウ関数の具体的な使用法

目次1. ウィンドウ関数とは何ですか? 1. ウィンドウをどのように理解しますか? 2. ウィンドウ...

LAMP ソースコードを使用したエンタープライズレベルのインストールチュートリアル

目次LAMPアーキテクチャ1.ランプの紹介2. WebサービスワークフローWebサーバーのリソースは...

いくつかの面接の質問を使ってJavaScriptの実行メカニズムを調べる

目次前の単語同期と非同期前菜プレートを追加マクロタスク マイクロタスク約束しましょうタイマーを追加す...

意外と知らないLinuxのSSHコマンドの使い方7選を徹底解説

システム管理者は複数のサーバーを同時に管理する場合があり、これらのサーバーは異なる場所に配置されてい...