序文: 以前の記事では、特定のパラメータの機能についてよく紹介してきました。しかし、MySQL パラメータが何であるかをまだ理解していない人もいるかもしれません。この記事では、MySQL パラメータについて説明し、MySQL パラメータを管理および維持する方法を学びます。 1.MySQLパラメータの概念 ここで言及しているパラメータは、公式ドキュメントではシステム変数と呼ばれています。変数によって機能が異なります。 MySQL サーバーは、その構成を表す多くのシステム変数を保持しており、それらはすべてデフォルト値を持っています。通常、起動コマンドラインまたは構成ファイルで設定できます。 システム変数は、グローバル システム変数 (global) とセッション システム変数 (session) に分けられます。一部の変数はグローバル変数とセッション変数の両方であり、一部はグローバル変数のみです。グローバル変数はサーバーのグローバル操作に影響しますが、セッション変数は特定のクライアント接続関連の操作にのみ影響します。セッション変数が個別に設定されていない場合は、対応するグローバル変数から継承されます。 MySQL サービスが起動すると、設定ファイルまたはコマンドラインで指定されたオプションに従ってグローバル変数に値が割り当てられます。オプションが指定されていない場合は、デフォルト値が使用されます。サービスが開始された後、サーバーに接続して SET GLOBAL var_name ステートメントを実行することで、一部のグローバル変数の値を動的に変更できます。グローバル変数を変更するには、SUPER 権限が必要です。 MySQL は各クライアント接続のセッション変数も維持し、接続時にクライアント セッション変数を対応するグローバル変数の現在の値で初期化します。クライアントは、SET SESSION var_name ステートメントを通じてセッション変数を動的に変更できます。セッション変数を設定するには特別な権限は必要ありませんが、セッション変数は現在の接続にのみ適用されます。 2. パラメータのクエリと変更の例 ここで注意すべき点は、すべてのパラメータが動的に変更できるわけではないということです。一部のパラメータは、構成ファイルに書き込んでデータベースを再起動することによってのみ有効になります。次に、MySQL パラメータのクエリと変更について説明します。 # パラメーター クエリ show global variables like 'var_name'; // グローバル システム変数の値を表示します。% ワイルドカードを使用できます show session variables like 'var_name'; // セッション システム変数の値を表示します show variables like 'var_name'; // セッション システム変数を返すことを優先します。セッション システム変数が存在しない場合は、グローバル システム変数を返します。 # select を使用して特定のパラメータをクエリすることもできます。 select @@global.var_name; // グローバル システム変数 select @@session.var_name; // セッション システム変数 select @@var_name; // 優先セッション システム変数 # クエリの例 mysql> show global variables like 'server_id'; +---------------+---------+ | 変数名 | 値 | +---------------+---------+ | サーバー ID | 1003306 | +---------------+---------+ セット内の 1 行 (0.00 秒) mysql> 'log_bin%' のようなグローバル変数を表示します。 +---------------------------------+---------------------------------+ | 変数名 | 値 | +---------------------------------+---------------------------------+ | log_bin | オン | | log_bin_basename | /data/mysql/logs/binlog | | log_bin_index | /data/mysql/logs/binlog.index | | log_bin_trust_function_creators | オン | | log_bin_use_v1_row_events | オフ | +---------------------------------+---------------------------------+ セット内の行数は 5 です (0.00 秒) mysql> @@server_id を選択します。 +-------------+ | @@サーバーID | +-------------+ |1003306| +-------------+ セット内の 1 行 (0.00 秒) # パラメータを動的に変更する set global var_name = value; セッションvar_name = valueを設定します。 var_name = 値を設定します。 @@global.var_name = 値を設定します。 @@session.var_name = 値を設定します。 @@var_name = 値を設定します。 # パラメータ変更例 mysql> set global sort_buffer_size = 2097152; クエリは正常、影響を受けた行は 0 行 (0.00 秒) mysql> セッションの sort_buffer_size を 4194304 に設定します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) mysql> @@global.sort_buffer_size、@@session.sort_buffer_size を選択します。 +---------------------------+----------------------------+ | @@global.sort_buffer_size | @@session.sort_buffer_size | +---------------------------+----------------------------+ | 2097152 | 4194304 | +---------------------------+----------------------------+ セット内の 1 行 (0.00 秒) パラメータが動的に変更されたら、それを構成ファイルに書き込むことをお勧めします。動的に変更されたパラメータは MySQL サービスの再起動後に無効になるため、設定ファイルに書き込まれた場合にのみ再起動後に有効になります。動的に変更できない一部のパラメータについては、構成ファイルを変更して再起動することによってのみ有効にすることができます。ここで言及されている設定ファイルは my.cnf ファイルであり、通常、Linux システムでは /etc ディレクトリに、Windows システムでは basedir ディレクトリにあります。my.ini という名前を付けることもできます。ほとんどのパラメータは [mysqld] で設定する必要があります。簡単な設定ファイルの例は次のとおりです。 vi /etc/my.cnf # シンプルなテンプレートは次のとおりです。 [mysqld] ユーザー = mysql データディレクトリ = /data/mysql/data ソケット = /data/mysql/tmp/mysql.sock pid ファイル = /data/mysql/tmp/mysqld.pid スキップ名解決 = 1 最大接続数 = 2000 小文字のテーブル名 = 1 log_timestamps=システム 最大許容パケット = 32M ... MySQL パラメータは通常、DBA または運用保守担当者によって管理されるため、一部の学生はこれらのパラメータに馴染みがない可能性があります。データベースを初期化するときに、サーバーの仕様に応じて対応するデータベース パラメータを設定することをお勧めします。機能が不明なパラメータについては、デフォルト値のままにしておくことをお勧めします。パラメータの詳細については、公式ドキュメントを参照してください。
要約: この記事では、MySQL パラメータとクエリ変更方法に関する概念について詳しく説明します。皆さんが関連知識を習得できることを願っています。 以上がMySQLパラメータ関連の概念とクエリ変更方法の詳細な内容です。MySQLパラメータの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Ubuntu 20.04 デスクトップのインストールとルート権限の有効化および SSH インストールの詳細
ソースコードプレビュー: https://github.com/jdf2e/nutui NutUI ...
すべてには基礎が必要です。家を建てるには基礎が必要です。方程式を解くには、まず九九を覚える必要があり...
ページレイアウトは、Web ページを扱い始めた頃からずっと気にかけていたことです。初期のテーブル構造...
目次自動インクリメント ID を更新する理由は何ですか?質問解決方法これは私が知っている問題ですが、...
この記事では、ランダムロールコールを実装するためのjsの具体的なコードを参考までに共有します。具体的...
今日、jsp ページを書きました。<div style="margin:0 auto...
具体的な方法: 1. [ win+r ] を押して実行ウィンドウを開き、「regedit」と入力して...
Dockerfile は、イメージをビルドするために使用されるテキスト ファイルです。テキスト コン...
このプロジェクトは最近テストされ、テスターから、トークンの有効期限が切れたため、ルートが自動的にログ...
Ubuntu に jdk をインストールする: [リンク] UbuntuにEclipseをインストー...
HTML5 のドラッグ アンド ドロップ機能は誰もが知っていますが、これを使用するとドラッグ アンド...
Docker テクノロジの開発により、マイクロサービスの実装にさらに便利な環境が提供されます。Doc...
HTML でアンカーの位置を設定する方法はいくつかあるので、ここで紹介します。 1. ID ポジショ...
DNMP の紹介DNMP (Docker + Nginx + MySQL + PHP7/5 + Re...
目次1. 使用2. メッセージポップアップウィンドウが繰り返し表示される問題を解決する1. 使用Vu...