【MySQL】サーバー上のすべてのデータベースのデフォルト文字セットを確認する方法
information_schema.SCHEMATAを使った確認方法
サーバー上に存在するすべてのMySQLデータベースのデフォルト文字セットを一覧で確認したい場合は、information_schema.SCHEMATAテーブルに対して以下のクエリを実行します。このクエリを実行すると、データベース名とそれぞれに設定されたデフォルトの文字セットが一緒に返されます。
mysql> SELECT SCHEMA_NAME 'Database', default_character_set_name 'Charset' FROM information_schema.SCHEMATA; +--------------------+---------+ | Database | Charset | +--------------------+---------+ | information_schema | utf8 | | gaurav | latin1 | | menagerie | latin1 | | mysql | latin1 | | performance_schema | utf8 | | sample | latin1 | | test | latin1 | | tutorial | latin1 | +--------------------+---------+ 8 rows in set (0.00 sec)
実行結果には、サーバー上の各データベースの名前(Database列)と、それぞれに設定されているデフォルトの文字セット(Charset列)が表示されます。上記の例では、information_schemaとperformance_schemaは「utf8」、それ以外のユーザーデータベースは「latin1」がデフォルト文字セットとして設定されていることが一目でわかります。
特定のデータベースだけを確認する場合
すべてのデータベースではなく、特定のデータベースの文字セットだけを調べたいときは、WHERE句で対象を絞り込むことができます。
mysql> SELECT default_character_set_name FROM information_schema.SCHEMATA
-> WHERE SCHEMA_NAME = 'sample';
照合順序も合わせて確認する
文字セットに加えて、デフォルトの照合順序(collation)も同時に確認したい場合は、default_collation_nameカラムをSELECT句に追加します。
mysql> SELECT SCHEMA_NAME, default_character_set_name, default_collation_name
-> FROM information_schema.SCHEMATA;
なお、SHOW CREATE DATABASE データベース名;コマンドでも個別のデータベースの文字セットを確認できますが、サーバー全体の状況を一括して把握したい場合は、上記のようにinformation_schemaを利用する方法が最も効率的です。文字コードの不整合による文字化けを防ぐためにも、定期的にデータベースごとの文字セット設定を見直しておくことをおすすめします。
-
MySQLで列の値が文字列か数値かを判定して取得する方法
MySQLで列の値が文字列か数値かを判別する方法 MySQLでは、正規表現を使ったREGEXP演算子を利用することで、列の値が文字列なのか数値なのかを簡単に判別できます。 基本構文 文字列の値のみを取得したい場合は、以下の構文を使用します。 select *from yourTableName where yourColumnName NOT regexp ^[0-9]+$; 数値のみを取得したい場合は、以下の構文を使用します。 select *from yourTableName where yourColumnName regexp ^[0-9]+$; ここで使われている正規表現 ^[0
-
MySQLサーバー上のすべてのデータベース・すべてのテーブルにSELECT権限を付与する方法
MySQLですべてのデータベース・すべてのテーブルにSELECT権限を付与するには?MySQLサーバー上のすべてのデータベースのすべてのテーブルに対してSELECT権限を付与したい場合は、GRANT SELECTステートメントを使用します。対象にワイルドカード「*.*」を指定することで、サーバー上の全データベース・全テーブルが一括して権限付与の対象となります。基本構文GRANT SELECT ON *.* TO yourUserName@yourHostName;手順1:既存ユーザーとホストの一覧を確認するまず、mysql.userテーブルを参照して、登録されているユーザー名とホストの一覧を確