このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
mariadb:10.4:system-variables [2019/10/28 12:19] tanaka [システム変数 storage_engine] |
mariadb:10.4:system-variables [2020/11/20 09:58] (現在) y2sunlight |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | > **本編は投稿中です。しばらくお待ち下さい。** | + | ====== MariaDB10.4 システム変数の参照と変更 ====== |
| + | phpMyAdmin 4.9.0.1 (MariaDB 10.4.6) | ||
| - | ---- | ||
| - | |||
| - | ====== MariaDB10.4 システム変数の参照と変更 ====== | ||
| --- // | --- // | ||
| 行 9: | 行 7: | ||
| 関連記事 | 関連記事 | ||
| - | * [[xampp: | ||
| * [[mariadb: | * [[mariadb: | ||
| * [[mariadb: | * [[mariadb: | ||
| 行 15: | 行 12: | ||
| * [[mariadb: | * [[mariadb: | ||
| * [[mariadb: | * [[mariadb: | ||
| + | |||
| + | 以下「MySQL」は「MariaDB」に読み替えて下さい。 | ||
| ---- | ---- | ||
| + | |||
| + | ===== 概要 ===== | ||
| MySQLサーバには多くのシステム変数があります。システム変数にはデフォルト値が存在しますが、サーバ起動時のコマンドラインオプションや、オプションファイル(my.ini)で設定する事ができます。また、多くのシステム変数はSET文で変更する事ができます。 | MySQLサーバには多くのシステム変数があります。システム変数にはデフォルト値が存在しますが、サーバ起動時のコマンドラインオプションや、オプションファイル(my.ini)で設定する事ができます。また、多くのシステム変数はSET文で変更する事ができます。 | ||
| 行 22: | 行 23: | ||
| MySQL 4.0.3から、MySQLサーバは2種類のシステム変数(グローバル変数とセッション変数)を保持するようになりました。グローバル変数はサーバ起動時に設定される変数で、SET GLOBAL 文によって変更できます。但し、変更するにはSUPER権限が必要になります。一方、セッション変数は各接続に対して保持される変数で、接続時にグローバル変数によって初期化されます。セッション変数の変更はSET SESSION 文によって変更できます。変更に当たっては特別な権限は必要としませんが、変更できるのは自分のセッション変数だけです。 | MySQL 4.0.3から、MySQLサーバは2種類のシステム変数(グローバル変数とセッション変数)を保持するようになりました。グローバル変数はサーバ起動時に設定される変数で、SET GLOBAL 文によって変更できます。但し、変更するにはSUPER権限が必要になります。一方、セッション変数は各接続に対して保持される変数で、接続時にグローバル変数によって初期化されます。セッション変数の変更はSET SESSION 文によって変更できます。変更に当たっては特別な権限は必要としませんが、変更できるのは自分のセッション変数だけです。 | ||
| - | ==== システム変数 version ==== | + | \\ |
| + | |||
| + | ===== システム変数 version | ||
| システム変数versionを参照します。ブラウザからサンプルプログラム(sqlfile.php)を実行します。 | システム変数versionを参照します。ブラウザからサンプルプログラム(sqlfile.php)を実行します。 | ||
| 行 35: | 行 38: | ||
| </ | </ | ||
| - | 実行結果 | + | === 実行結果 |
| [{{: | [{{: | ||
| 行 53: | 行 56: | ||
| 最初の構文(SHOW VARIABLES)はMySQL独自のもので、次の構文は(select @@)は他のデータベースとの互換性を保持する為にサポートされています。 | 最初の構文(SHOW VARIABLES)はMySQL独自のもので、次の構文は(select @@)は他のデータベースとの互換性を保持する為にサポートされています。 | ||
| - | ==== システム変数 storage_engine ==== | + | |
| + | \\ | ||
| + | |||
| + | ===== システム変数 storage_engine | ||
| インストールしたMySQLに搭載されているデータベースエンジンを確認してみます。ブラウザからサンプルプログラム(sqlfile.php)を実行します。 | インストールしたMySQLに搭載されているデータベースエンジンを確認してみます。ブラウザからサンプルプログラム(sqlfile.php)を実行します。 | ||
| 行 65: | 行 71: | ||
| </ | </ | ||
| - | 実行結果 | + | === 実行結果 |
| [{{: | [{{: | ||
| 行 84: | 行 90: | ||
| </ | </ | ||
| - | ここでは、データベースエンジンをデフォルトのInnoDBからAriaに変更します。AriaはMyISAMの耐障害性やキャッシュ機構などを改善した、モダンなデータベースエンジンで、もともとの名前は**Maria**だった。 | + | ここでは、データベースエンジンをデフォルトのInnoDBからAriaに変更します。AriaはMyISAMの耐障害性やキャッシュ機構などを改善した、モダンなデータベースエンジンで、もともとの名前は**Maria**でした!。 |
| - | + | === 実行結果 | |
| - | 実行結果 | + | |
| [{{: | [{{: | ||
| 行 95: | 行 100: | ||
| この例では、セッション変数storage_engineをSET文でAriaに変更しています。実行結果を見ても分かるようにセッション変数の変更はグローバル変数には影響しません。SETまたはSHOW文で SESSION/ | この例では、セッション変数storage_engineをSET文でAriaに変更しています。実行結果を見ても分かるようにセッション変数の変更はグローバル変数には影響しません。SETまたはSHOW文で SESSION/ | ||
| - | ==== 文字セット関連のシステム変数 ==== | + | \\ |
| + | |||
| + | ===== 文字セット関連のシステム変数 | ||
| 文字セット関連のシステム変数を取得してみます。ブラウザからサンプルプログラム(sqlfile.php)を実行します。 | 文字セット関連のシステム変数を取得してみます。ブラウザからサンプルプログラム(sqlfile.php)を実行します。 | ||
| 行 108: | 行 115: | ||
| </ | </ | ||
| - | 実行結果 | + | === 実行結果 |
| [{{: | [{{: | ||
| 行 116: | 行 123: | ||
| 本例では上記実行結果のようになりました。暗黙の文字セットとなるcharacter_set_serverがlatin1になっています。これをutf8に変更するには、my.iniを以下のように変更します。 | 本例では上記実行結果のようになりました。暗黙の文字セットとなるcharacter_set_serverがlatin1になっています。これをutf8に変更するには、my.iniを以下のように変更します。 | ||
| - | {XAMPP Install Folder}/ | + | {{fa> |
| - | < | + | < |
| + | [mysqld] | ||
| character_set_server=utf8 | character_set_server=utf8 | ||
| </ | </ | ||
| 行 123: | 行 131: | ||
| また、上記実行結果では、クライアントとの接続に関係する3つのセッション変数(character_set_client, | また、上記実行結果では、クライアントとの接続に関係する3つのセッション変数(character_set_client, | ||
| - | 漢字を使用するためには、上で説明したようにmy.iniを編集するか、セッションの初めに | + | 漢字を使用するためには、上で説明したようにmy.iniを編集するか、セッションの初めに |
| + | |||
| + | === クライアント文字セットをUTF8に設定する === | ||
| - | クライアント文字セットをUTF8に設定する | ||
| < | < | ||
| set names utf8; | set names utf8; | ||
| </ | </ | ||
| - | 本サンプルプログラムでは、sオプションを使用することでデータベースセッションの初めに < | + | 本サンプルプログラムでは、sオプションを使用することでデータベースセッションの初めに |
| < | < | ||
| http:// | http:// | ||
| </ | </ | ||
| + | |||
| + | [{{: | ||
| < | < | ||
| 行 146: | 行 157: | ||
| - | データベースの文字セット | + | === データベースの文字セット |
| データベースの文字セットはデータベースの作成時に決まります。この場合の暗黙の文字セットはサーバの文字セット(character_set_server)です。これを変更するにはCREATE DATABASE文で明示的に指定します: | データベースの文字セットはデータベースの作成時に決まります。この場合の暗黙の文字セットはサーバの文字セット(character_set_server)です。これを変更するにはCREATE DATABASE文で明示的に指定します: | ||
| 行 165: | 行 176: | ||
| </ | </ | ||
| - | 文字セットはサーバ、データベース、テーブル、カラムと順に引き継がれます。明示的の指定しない場合は、1つ前のレベルの文字セットが使用されます。 | + | 文字セットはサーバ、データベース、テーブル、カラムと順に引き継がれます。明示的に指定しない場合は、1つ前のレベルの文字セットが使用されます。 |
| + | \\ | ||