Ground Sunlight

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

ユーザ用ツール

サイト用ツール


mariadb:10.4:system-variables

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
mariadb:10.4:system-variables [2019/10/29 18:15]
y2sunlight [文字セット関連のシステム変数]
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 =====
  
 インストールしたMySQLに搭載されているデータベースエンジンを確認してみます。ブラウザからサンプルプログラム(sqlfile.php)を実行します。 インストールしたMySQLに搭載されているデータベースエンジンを確認してみます。ブラウザからサンプルプログラム(sqlfile.php)を実行します。
行 65: 行 71:
 </file> </file>
  
-実行結果+=== 実行結果 ===
  
 [{{:mariadb:10.4:sqlfile05.png?nolink|}}] [{{:mariadb:10.4:sqlfile05.png?nolink|}}]
行 84: 行 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|}}]
行 95: 行 100:
 この例では、セッション変数storage_engineをSET文でAriaに変更しています。実行結果を見ても分かるようにセッション変数の変更はグローバル変数には影響しません。SETまたはSHOW文で SESSION/GLOBALを省略するとSESSIONとして扱われます。SHOWでlike節を省略すると全ての変数を表示します。 この例では、セッション変数storage_engineをSET文でAriaに変更しています。実行結果を見ても分かるようにセッション変数の変更はグローバル変数には影響しません。SETまたはSHOW文で SESSION/GLOBALを省略するとSESSIONとして扱われます。SHOWでlike節を省略すると全ての変数を表示します。
  
-==== 文字セット関連のシステム変数 ====+\\ 
 + 
 +===== 文字セット関連のシステム変数 =====
  
 文字セット関連のシステム変数を取得してみます。ブラウザからサンプルプログラム(sqlfile.php)を実行します。 文字セット関連のシステム変数を取得してみます。ブラウザからサンプルプログラム(sqlfile.php)を実行します。
行 108: 行 115:
 </file> </file>
  
-実行結果+=== 実行結果 ===
  
 [{{:mariadb:10.4:sqlfile04.png?nolink|}}] [{{:mariadb:10.4:sqlfile04.png?nolink|}}]
行 116: 行 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] [mysqld]
 character_set_server=utf8 character_set_server=utf8
行 124: 行 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>
 http://localhost/mysql/sqlfile.php?f=syaval3.sql&s=1 http://localhost/mysql/sqlfile.php?f=syaval3.sql&s=1
 </code> </code>
 +
 +[{{:mariadb:10.4:sqlfile04a.png?nolink|}}]
  
 <nowiki>set names</nowiki> の実行は上例でもわかるように character_set_client、character_set_connection、character_set_results を設定します。 <nowiki>set names</nowiki> の実行は上例でもわかるように character_set_client、character_set_connection、character_set_results を設定します。
行 147: 行 157:
  
  
-データベースの文字セット+=== データベースの文字セット ===
  
 データベースの文字セットはデータベースの作成時に決まります。この場合の暗黙の文字セットはサーバの文字セット(character_set_server)です。これを変更するにはCREATE DATABASE文で明示的に指定します: データベースの文字セットはデータベースの作成時に決まります。この場合の暗黙の文字セットはサーバの文字セット(character_set_server)です。これを変更するにはCREATE DATABASE文で明示的に指定します:
行 166: 行 176:
 </code> </code>
  
-文字セットはサーバ、データベース、テーブル、カラムと順に引き継がれます。明示的指定しない場合は、1つ前のレベルの文字セットが使用されます。+文字セットはサーバ、データベース、テーブル、カラムと順に引き継がれます。明示的指定しない場合は、1つ前のレベルの文字セットが使用されます。
  
 +\\
  
mariadb/10.4/system-variables.1572340537.txt.gz · 最終更新: 2019/10/29 18:15 by y2sunlight