MySQL :: MySQL 8.0 リファレンスマニュアル :: 13.1.12 CREATE DATABASE Statement

13.1.12 CREATE DATABASE Statement

CREATE {DATABASE | SCHEMA} db_name ...create_option: { CHARACTER SET charset_name | COLLATE collation_name | ENCRYPTION {'Y' | 'N'}}

CREATE DATABASE 与えられた名前でデータベースを作成します。 このステートメントを使用するには、そのデータベースに対してCREATE権限が必要です。 CREATE SCHEMACREATE DATABASE の同義語である。

データベースが存在し、IF NOT EXISTSを指定しなかった場合、エラーが発生します。

CREATE DATABASE は、アクティブな LOCK TABLES 文を持つセッション内では許可されません。

create_optionはデータベースの特性を指定します。

  • CHARACTER SET オプションは、データベースのデフォルトの文字セットを指定します。 COLLATE オプションは、データベースのデフォルトの照合順序を指定します。 キャラクタセットと照合順序の名前については、第10章「キャラクタセット、照合順序、Unicode」を参照のこと。

    利用可能なキャラクタセットと照合順序を確認するには、それぞれ SHOW CHARACTER SETSHOW COLLATION ステートメントを使用します。 13.7.7.3項 「SHOW CHARACTER SETステートメント」、および13.7.7.4項 「SHOW COLLATIONステートメント」を参照してください。

  • MySQL 8.0.16 で導入された ENCRYPTION オプションは、デフォルトのデータベース暗号化を定義し、これはデータベース内で作成されたテーブルによって継承されます。 許可される値は 'Y' (暗号化有効) および 'N' (暗号化無効) です。 ENCRYPTION オプションが指定されない場合、default_table_encryption システム変数の値がデフォルトのデータベース暗号化を定義する。 table_encryption_privilege_check システム変数が有効な場合、default_table_encryption 設定と異なるデフォルトの暗号化設定を指定するには TABLE_ENCRYPTION_ADMIN 権限が必要である。 詳細については、「スキーマと一般テーブルスペースの暗号化デフォルトの定義」を参照してください。

MySQL のデータベースは、データベース内のテーブルに対応するファイルを含むディレクトリとして実装されています。 最初に作成されたデータベースにはテーブルがないため、CREATE DATABASEステートメントは MySQL データ ディレクトリの下にディレクトリを作成するだけです。 許容されるデータベース名のルールは 「スキーマオブジェクト名」 に記載されています。 データベース名に特殊文字が含まれている場合、「ファイル名への識別子のマッピング」で説明されているように、データベースディレクトリの名前にはそれらの文字がエンコードされたバージョンが含まれます。

データディレクトリの下に手動でディレクトリを作成して(たとえば mkdir を使用して)データベースディレクトリを作成することは MySQL 8.0 ではサポートされていません。

データベースを作成する場合、ディレクトリとその中のファイルの管理はサーバーに任せます。 データベースのディレクトリとファイルを直接操作すると、不整合や予期しない結果を引き起こす可能性があります。

MySQL にはデータベースの数に制限はありません。 基礎となるファイルシステムには、ディレクトリの数に制限がある場合があります。

また、データベースを作成するために mysqladmin プログラムを使用することができます。 mysqladmin – A MySQL Server Administration Program」(Mysqladmin – A MySQL Server Administration Program) を参照してください。

コメントを残す

メールアドレスが公開されることはありません。