Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


mariadb:10.4:system-variables

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
mariadb:10.4:system-variables [2019/10/23 13:00]
tanaka [文字セット関連のシステム変数]
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 システム変数の参照と変更 ====== 
  --- //[[http://www.y2sunlight.com|y2sunlight]] 2019-10-15//  --- //[[http://www.y2sunlight.com|y2sunlight]] 2019-10-15//
  
行 9: 行 7:
  
 関連記事 関連記事
-  * [[xampp:7.2|XAMPP7.2のインストール]] 
   * [[mariadb:10.4:phpmyadmin|MariaDB10.4 phpMyAdminの使い方]]   * [[mariadb:10.4:phpmyadmin|MariaDB10.4 phpMyAdminの使い方]]
   * [[mariadb:10.4:mysqli|MariaDB10.4 PHPサンプルプログラム]]   * [[mariadb:10.4:mysqli|MariaDB10.4 PHPサンプルプログラム]]
行 15: 行 12:
   * [[mariadb:10.4:server-info|MariaDB10.4 サーバ情報の取得]]   * [[mariadb:10.4:server-info|MariaDB10.4 サーバ情報の取得]]
   * [[mariadb:10.4:transaction|MariaDB10.4 トランザクション]]   * [[mariadb:10.4:transaction|MariaDB10.4 トランザクション]]
 +
 +以下「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:
 </file> </file>
  
-実行結果+=== 実行結果 ===
  
 [{{:mariadb:10.4:sqlfile02.png?nolink|}}] [{{:mariadb:10.4:sqlfile02.png?nolink|}}]
行 53: 行 56:
  
 最初の構文(SHOW VARIABLES)はMySQL独自のもので、次の構文は(select @@)は他のデータベースとの互換性を保持する為にサポートされています。 最初の構文(SHOW VARIABLES)はMySQL独自のもので、次の構文は(select @@)は他のデータベースとの互換性を保持する為にサポートされています。
-==== システム変数 storage_engine ==== 
  
-システム変数storage_engineを変更してみます。ブラウザからサンプルプログラム(sqlfile.php)を実行します。+\\ 
 + 
 +===== システム変数 storage_engine ===== 
 + 
 +インストールしたMySQLに搭載されているデータベースエンジンを確認してみます。ブラウザからサンプルプログラム(sqlfile.php)を実行します。 
 + 
 +<code> 
 +http://localhost/mysql/sqlfile.php?f=svinfo1.sql 
 +</code> 
 + 
 +<file sql svinfo1.sql> 
 +SHOW ENGINES; 
 +</file> 
 + 
 +=== 実行結果 === 
 + 
 +[{{:mariadb:10.4:sqlfile05.png?nolink|}}] 
 + 
 +実行結果から分かるようにInnoDBがデフォルトエンジンとして使用されています。 
 + 
 +次に、システム変数storage_engineを変更してみます。ブラウザからサンプルプログラム(sqlfile.php)を実行します。
  
 <code> <code>
行 62: 行 84:
  
 <file sql syaval2.sql> <file sql syaval2.sql>
-SET storage_engine=MyISAM;+SET storage_engine=Aria;
 SHOW SESSION VARIABLES LIKE 'storage_engine'; SHOW SESSION VARIABLES LIKE 'storage_engine';
 SHOW GLOBAL VARIABLES LIKE 'storage_engine'; SHOW GLOBAL VARIABLES LIKE 'storage_engine';
行 68: 行 90:
 </file> </file>
  
-ここでは、データベースエンジンをデフォルトのInnoDBからAriaに変更します。AriaはMyISAMの耐障害性やキャッシュ機構などを改善した、モダンなデータベースエンジンで、もともとの名前は**Maria**だった。 +ここでは、データベースエンジンをデフォルトのInnoDBからAriaに変更します。AriaはMyISAMの耐障害性やキャッシュ機構などを改善した、モダンなデータベースエンジンで、もともとの名前は**Maria**でし
  
-実行結果+=== 実行結果 ===
  
 [{{:mariadb:10.4:sqlfile03.png?nolink|}}] [{{:mariadb:10.4:sqlfile03.png?nolink|}}]
行 77: 行 98:
 システム変数storage_engineはCREATE TABLEで使用されるデフォルトのテーブルタイプです。 システム変数storage_engineはCREATE TABLEで使用されるデフォルトのテーブルタイプです。
  
-この例では、セッション変数storage_engineをSET文でMyISAMに変更しています。実行結果を見ても分かるようにセッション変数の変更はグローバル変数には影響しません。SETまたはSHOW文で SESSION/GLOBALを省略するとSESSIONとして扱われます。SHOWでlike節を省略すると全ての変数を表示します。+この例では、セッション変数storage_engineをSET文でAriaに変更しています。実行結果を見ても分かるようにセッション変数の変更はグローバル変数には影響しません。SETまたはSHOW文で SESSION/GLOBALを省略するとSESSIONとして扱われます。SHOWでlike節を省略すると全ての変数を表示します。
  
-==== 文字セット関連のシステム変数 ====+\\ 
 + 
 +===== 文字セット関連のシステム変数 =====
  
 文字セット関連のシステム変数を取得してみます。ブラウザからサンプルプログラム(sqlfile.php)を実行します。 文字セット関連のシステム変数を取得してみます。ブラウザからサンプルプログラム(sqlfile.php)を実行します。
行 88: 行 111:
  
 <file sql syaval3.sql> <file sql syaval3.sql>
-SHOW GLOBAL VARIABLES LIKE 'character\_set\_%'; +SHOW GLOBAL VARIABLES LIKE 'character_set_%'; 
-SHOW SESSION VARIABLES LIKE 'character\_set\_%';+SHOW SESSION VARIABLES LIKE 'character_set_%';
 </file> </file>
  
-実行結果+=== 実行結果 ===
  
 [{{:mariadb:10.4:sqlfile04.png?nolink|}}] [{{:mariadb:10.4:sqlfile04.png?nolink|}}]
行 100: 行 123:
 本例では上記実行結果のようになりました。暗黙の文字セットとなるcharacter_set_serverがlatin1になっています。これをutf8に変更するには、my.iniを以下のように変更します。 本例では上記実行結果のようになりました。暗黙の文字セットとなるcharacter_set_serverがlatin1になっています。これをutf8に変更するには、my.iniを以下のように変更します。
  
-{XAMPP Install Folder}/mysql/bin/my.ini +{{fa>file-o}} ''{XAMPP Install Folder}/mysql/bin/my.ini'' 
-<code>+<code ini my.ini> 
 +[mysqld]
 character_set_server=utf8 character_set_server=utf8
 </code> </code>
行 107: 行 131:
 また、上記実行結果では、クライアントとの接続に関係する3つのセッション変数(character_set_client, character_set_results, character_set_connection)はlatin1になっています。latin1はASCIIコードに西ヨーロッパ諸国のアルファベットや記号を追加した8ビット系のコードです。このままの状態では漢字の使用ができません。 また、上記実行結果では、クライアントとの接続に関係する3つのセッション変数(character_set_client, character_set_results, character_set_connection)はlatin1になっています。latin1はASCIIコードに西ヨーロッパ諸国のアルファベットや記号を追加した8ビット系のコードです。このままの状態では漢字の使用ができません。
  
-漢字を使用するためには、上で説明したようにmy.iniを編集するか、セッションの初めに <nowiki>set names</nowiki> を実行します。+漢字を使用するためには、上で説明したようにmy.iniを編集するか、セッションの初めに ''set names'' を実行します。 
 + 
 +=== クライアント文字セットをUTF8に設定する ===
  
-クライアント文字セットをUTF8に設定する 
 <code> <code>
 set names utf8; set names utf8;
-<code>+</code>
  
-本サンプルプログラムでは、sオプションを使用することでデータベースセッションの初めに <nowiki>set names</nowiki> を実行できます。+本サンプルプログラムでは、sオプションを使用することでデータベースセッションの初めに ''set names'' を実行できます。
  
 <code> <code>
行 120: 行 145:
 </code> </code>
  
-nowiki>set names</nowiki> の実行は上例でもわかるように character_set_client、character_set_connection、character_set_results を設定します。+[{{:mariadb:10.4:sqlfile04a.png?nolink|}}] 
 + 
 +<nowiki>set names</nowiki> の実行は上例でもわかるように character_set_client、character_set_connection、character_set_results を設定します。
  
 | character_set_client | クライアントの使用する文字セットです。サーバへのSQL文はこの文字セットで送信します。 | | character_set_client | クライアントの使用する文字セットです。サーバへのSQL文はこの文字セットで送信します。 |
行 130: 行 157:
  
  
-データベースの文字セット+=== データベースの文字セット ===
  
 データベースの文字セットはデータベースの作成時に決まります。この場合の暗黙の文字セットはサーバの文字セット(character_set_server)です。これを変更するにはCREATE DATABASE文で明示的に指定します: データベースの文字セットはデータベースの作成時に決まります。この場合の暗黙の文字セットはサーバの文字セット(character_set_server)です。これを変更するにはCREATE DATABASE文で明示的に指定します:
行 149: 行 176:
 </code> </code>
  
-文字セットはサーバ、データベース、テーブル、カラムと順に引き継がれます。明示的指定しない場合は、1つ前のレベルの文字セットが使用されます。+文字セットはサーバ、データベース、テーブル、カラムと順に引き継がれます。明示的指定しない場合は、1つ前のレベルの文字セットが使用されます。
  
 +\\
  
mariadb/10.4/system-variables.1571803223.txt.gz · 最終更新: 2019/10/23 13:00 by tanaka