mysql サーバは、様々なシステム変数を保有し、その変数をどのように設定したかを示します 。
それぞれのシステム変数にはデフォルト値があります。システム変数はサーバ起動時に、
コマンドラインまたはオプション ファイルなどを使用してセットできます。大抵の場合、
SETコマンドを使用して実行中のサーバで動的に変更できます。

サーバには 2 種類のシステム変数があります。グローバル変数はサーバの
全体的なオペレーションに影響し、セッション変数はそれぞれのクライアント接続
でのオペレーションに影響します。与えられた変数はグローバルとセッション、
両方の値を持つこともあります。グローバルおよびセッション変数は次のように関係しています。

サーバが起動するとき、すべてのグローバル変数をデフォルト値に初期化する。
このデフォルト値はコマンド ラインまたはオプション ファイルなどで指定できる。

サーバにはクライアントが接続するセッション変数の組み合わせがある。
クライアントのセッション変数は、グローバル変数に呼応するカレント値を使用して
接続タイムで初期化する。たとえば、クライアントの SQL モードは、セッション
sql_mode 値で制御し、クライアントが sql_mode のグローバル値に接続するときに初期化する。

システム変数はサーバ起動時にコマンドラインまたはオプションファイルを使用して
グローバル設定できます。起動オプションを使用して値を設定するときは、数値を使用し、
値には K (キロバイト)、M (メガバイト)、G (ギガバイト) などのサフィックスで与えます
(大文字あるは小文字)。これらは、1024、10242 または 10243 の倍数を示します。
これにより、次のコマンドは、クエリ キャッシュ サイズが 16 メガバイト、最大パケット
サイズが 1 ギガバイトでサーバが起動することを示します。

===================================
起動時のオプション
===================================

コマンドラインまたはオプション

mysqld --query_cache_size=16M --max_allowed_packet=1G

オプション ファイル

[mysqld]
query_cache_size=16M
max_allowed_packet=1G

===================================
稼動時
===================================

変数がグローバルであることを明示するには、GLOBAL または @@global. で名前を先行する。
グローバル変数を設定するには SUPER 権限が必要。

変数がセッションであることを明示するには、SESSION、@@session.、@@ などで名前を先行する。
セッション値の設定には特別の権限は不要であるが、クライアントだけがそのセッション変数を変更
できる。別のクライアントからはできない。

LOCAL および @@local. は SESSION と @@session. のシノニム。.

修飾子がない場合は、SET でセッション変数を変更する。

システム変数に値を SET で指定するときには、変数にスフィックス文字は使用しません。
(起動オプションのときは使用する。) ただし、この値は例示のようにプログラミング形式にできます。

SET sort_buffer_size = 10 * 1024 * 1024;


mysql> SHOW VARIABLES LIKE 'storage_engine';
+----------------+--------+
| Variable_name | Value |
+----------------+--------+
| storage_engine | MyISAM |
+----------------+--------+
1 row in set (0.00 sec)

mysql> set storage_engine=InnoDB;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE 'storage_engine';
+----------------+--------+
| Variable_name | Value |
+----------------+--------+
| storage_engine | InnoDB |
+----------------+--------+
1 row in set (0.00 sec)

mysql> set storage_engine=MyISAM;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE 'storage_engine';
+----------------+--------+
| Variable_name | Value |
+----------------+--------+
| storage_engine | MyISAM |
+----------------+--------+
1 row in set (0.01 sec)

===================================
稼動時のみ
===================================
time_zone

現在のタイムゾーン。この変数はクライアント接続毎にタイム ゾーンを初期化する。
デオフォルトは ‘SYSTEM’ 、つまり system_time_zone「の値を使う」 ということ。
サーバ起動時に –default-time-zone オプションで明示的に指定できる。

system_time_zone

サーバ システムのタイム ゾーン。サーバが起動するときは、マシンのデフォルトタイムゾーン
を継承する。これは サーバを起動したユーザアカウントの環境やスタートアップ スクリプトの
オプションなどで変更可能。値は system_time_zone を設定する。通常、タイム ゾーンは
TZ 環境変数で指定する。または mysqld_safe スクリプトでの –timezone オプションでも指定可能。

open_files_limit

mysqld が開けるオペレーティング システムのファイル数。これはシステムで指定されている
実際の値であり、起動時のパラメータとして –open-files-limit オプションで mysqld または
mysqld_safe に指定したものとは異なる場合がある。MySQL がオープンファイル数を
変更できないシステムでは 0 になる。

などがあります

open
4.2.4. システム変数の使用

4.2.4.2. 動的システム変数

Comments are closed.

Post Navigation