Ground Sunlight

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

ユーザ用ツール

サイト用ツール


サイドバー

メインメニュー

XAMPP アレンジ

道具箱

リポジトリ編

フレームワーク編

公開ソフトウェア

メタ
リンク


このページへのアクセス
今日: 4 / 昨日: 0
総計: 521

mariadb:10.4:server-info

MariaDB10.4 サーバ情報の取得 

phpMyAdmin 4.9.0.1 (MariaDB 10.4.6)

y2sunlight 2019-10-15

MariaDBに戻る

関連記事

以下「MySQL」は「MariaDB」に読み替えて下さい。


概要

前の システム変数の参照と変更 ではSHOW VARIABLESを使ってシステム変数を参照しましたが、SHOW文にはこれ以外にもサーバに関するいろいろな情報を提供する形式があります。以下では、ストレージエンジン(テーブルタイプ)、文字セット、データベース、テーブルなどのサーバ情報を取得してみます。

尚、SHOW文については以下を参照して下さい。


ストレージエンジンに関する情報

ブラウザからサンプルプログラム(sqlfile.php)を実行します。

http://localhost/mysql/sqlfile.php?f=svinfo1.sql
svinfo1.sql
SHOW ENGINES;

実行結果

SHOW ENGINESはストレージエンジンに関する情報を表示します。この表示から、InnoDBがデフォルトのストレージエンジンである事が分かります。デフォルトのストレージエンジンは、CREATE TABLEで使用されるデフォルトのテーブルタイプです。デフォルトのストレージエンジンは、サーバオプションファイル(my.ini)のmysqldセクション中で変更することができます。

{XAMPP Install Folder}/mysql/bin/my.ini

my.ini
[mysqld]
default-storage-engine=Aria

実行時にデフォルトのストレージエンジンを変更するには、システム変数storage_engine を変えます。

SET storage_engine=Aria;

MySQLはマルチストレージエンジンに対応しています。同じデータベースの中に異なったストレージエンジンのテーブルを作成する事ができます。デフォルトのストレージエンジン以外でテーブルを作成するには、CREATE TABLE文のオプション(ENGINEまたはTYPE)で指定します。

CREATE TABLE syain( ・・・ ) ENGINE = Aria;


文字セットに関する情報

ブラウザからサンプルプログラム(sqlfile.php)を実行します。

http://localhost/mysql/sqlfile.php?f=svinfo2.sql
svinfo2.sql
SHOW CHARACTER SET;

実行結果

SHOW CHARACTER SETは全ての利用可能な文字セットを表示します。Charsetカラムは文字セット名です。漢字コードを指定するのに特に興味有る文字セット名はutf8mb4/utf8/ujis/sjisです。

Default collationカラムはデフォルトの照合順序名です。照合順序(collation)とは文字を比較する場合の順序付け規則の事です。各文字セットにはデフォルトの照合順序があります。

Maxlenカラムは1文字を格納するに要する最大のバイト数を表しています。

UTF8について

近年、Webプログラミングでは UTF8 を使用することが増えています。UTF8 の文字コードは次の2種類があります。

  • utf8 — 文字ごとに最大3バイトを使用しBMP(基本多言語面)のみを含みます。
  • utf8mb4 — 文字ごとに最大4バイトを使用しBMP(基本多言語面)に加え補助文字をサポートしています。

utf8は、utf8mb3と呼ばれることもあります。utf8mb4の補助文字としては絵文字が有名で、au、docomo、SoftBankなどそれぞれの機種によって絵文字がサポートされています。

UTF8 の代表的な照合順序には、以下のものがあります。

  • utf8_bin — バイナリ照合。文字コードが一致した場合のみマッチ。
  • utf8_general_ci — 大文字・小文字を区別しない(半角同士 及び 全角同士)
  • utf8_unicode_ci — 大文字・小文字、半角・全角、ひらがな・カタカナ、拗音/促音/濁音/半濁音と清音を区別しない
  • utf8mb4_general_ci — utf8_general_ci と同じ。
  • utf8mb4_unicode_ci — utf8_unicode_ci と同じ。
_binbinary_cicase insensitive(大文字・小文字を区別しない) の略として照合順序の名称に使用される接尾語です。


データベースに関する情報

ブラウザからサンプルプログラム(sqlfile.php)を実行します。

http://localhost/mysql/sqlfile.php?f=svinfo3.sql
svinfo3.sql
SHOW CREATE DATABASE test;
SHOW CREATE DATABASE test_utf8;

実行結果

SHOW CREATE DATABASEはデータベースの作成情報を表示します。上の表示から、データベースtestの文字セットはlatin1で、test_utf8の方はutf8という事が分かります。本例では、test_utf8 は以下のSQL文で作成しました。

CREATE DATABASE test_utf8 DEFAULT CHARACTER SET utf8;


テーブルに関する情報

ブラウザからサンプルプログラム(sqlfile.php)を実行します。

http://localhost/mysql/sqlfile.php?f=svinfo4a.sql
svinfo4a.sql
USE test;
SET storage_engine = Aria;         -- この設定は有効です
SET character_set_database = sjis; -- この設定は無意味です
 
DROP TABLE IF EXISTS syain;
CREATE TABLE syain (
  syain_no INT(10) NOT NULL,
  syain_name VARCHAR(50),
  bumon_no INT(10),
  PRIMARY KEY (syain_no)
);
SHOW CREATE TABLE syain;

実行結果

SHOW CREATE TABLEはテーブルの作成情報を表示します。この例題での興味ある情報はテーブル作成時のオプション(ENGINとDEFAULT CHARSET)です。

システム変数storage_engineをAriaに変更しているのでsyainテーブルはAriaで作成されています。storage_engineを変更しなければInnoDBで作成されます。ストレージエンジンの変更はCREATE TABLEのオプションで指定する事もできます。

CREATE TABLE syain( ・・・ ) ENGINE = Aria;

この例では、システム変数character_set_database をsjisに変更していますが、この設定は無意味です。テーブル作成時のデフォルトの文字セットは、データベース(test)の文字セットが使用されます。変更するにはCREATE TABLEのオプションで明示的に指定する必要があります。

CREATE TABLE syain( ・・・ ) DEFAULT CHARACTER SET  = sjis;

以下は、utf8を文字セットに利用しているデータベース(test_utf8)を使った実行例です。

ブラウザからサンプルプログラム(sqlfile.php)を実行します。

http://localhost/mysql/sqlfile.php?f=svinfo4b.sql
svinfo4b.sql
USE test_utf8;
 
DROP TABLE IF EXISTS syain;
CREATE TABLE syain (
  syain_no INT(10) NOT NULL,
  syain_name VARCHAR(50),
  bumon_no INT(10),
  PRIMARY KEY (syain_no)
);
SHOW CREATE TABLE syain;

実行結果

テーブル作成時のオプション(ENGINとDEFAULT CHARSET)は、ストレージエンジンがInnoDB、文字セットがutf8になり、全てデフォルト値が有効になっています。


コメント

コメントを入力. Wiki文法が有効です:
 
mariadb/10.4/server-info.txt · 最終更新: 2020/11/20 09:57 by y2sunlight