MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

13.1.12 CREATE DATABASE ステートメント

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_option] ...

create_option: [DEFAULT] {
    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 は、データベース特性を指定します。 データベース特性はデータディクショナリに格納されます。

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

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

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

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

mysqladmin プログラムを使用してデータベースを作成することもできます。 セクション4.5.2「mysqladmin — A MySQL Server 管理プログラム」を参照してください。