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
erstellt eine Datenbank mit dem angegebenen Namen. Um diese Anweisung zu verwenden, benötigen Sie das CREATE
-Recht für die Datenbank. CREATE SCHEMA
ist ein Synonym für CREATE DATABASE
.
Ein Fehler tritt auf, wenn die Datenbank existiert und Sie IF NOT EXISTS
nicht angegeben haben.
CREATE DATABASE
ist innerhalb einer Sitzung mit einer aktiven LOCK TABLES
-Anweisung nicht zulässig.
Jedes create_option
gibt ein Datenbankmerkmal an. Datenbankmerkmale werden im Datenwörterbuch gespeichert.
-
Die Option
CHARACTER SET
gibt den Standardzeichensatz der Datenbank an. Die OptionCOLLATE
gibt die Standardsortierung der Datenbank an. Informationen zu Zeichensatz- und Kollationierungsnamen finden Sie in Kapitel 10, Zeichensätze, Kollationen, Unicode.Um die verfügbaren Zeichensätze und Sortierungen anzuzeigen, verwenden Sie die Anweisungen
SHOW CHARACTER SET
bzw.SHOW COLLATION
. Siehe Abschnitt 13.7.7.3, „SHOW CHARACTER SET Statement“, und Abschnitt 13.7.7.4, „SHOW COLLATION Statement“. -
Die Option
ENCRYPTION
, eingeführt in MySQL 8.0.16, definiert die Standard-Datenbankverschlüsselung, die an die in der Datenbank erstellten Tabellen vererbt wird. Die zulässigen Werte sind'Y'
(Verschlüsselung aktiviert) und'N'
(Verschlüsselung deaktiviert). Wenn die OptionENCRYPTION
nicht angegeben wird, definiert der Wert der Systemvariablendefault_table_encryption
die Standard-Datenbankverschlüsselung. Wenn die Systemvariabletable_encryption_privilege_check
aktiviert ist, ist die BerechtigungTABLE_ENCRYPTION_ADMIN
erforderlich, um eine Standardverschlüsselungseinstellung anzugeben, die von der Einstellungdefault_table_encryption
abweicht. Weitere Informationen finden Sie unter Definieren einer Verschlüsselungsvorgabe für Schemas und allgemeine Tablespaces.
Eine Datenbank in MySQL ist als Verzeichnis implementiert, das Dateien enthält, die den Tabellen in der Datenbank entsprechen. Da es in einer Datenbank keine Tabellen gibt, wenn sie zum ersten Mal erstellt wird, erzeugt die CREATE DATABASE
-Anweisung nur ein Verzeichnis unter dem MySQL-Datenverzeichnis. Regeln für zulässige Datenbanknamen sind in Abschnitt 9.2, „Schema Object Names“, angegeben. Wenn ein Datenbankname Sonderzeichen enthält, enthält der Name für das Datenbankverzeichnis kodierte Versionen dieser Zeichen, wie in Abschnitt 9.2.4, „Zuordnung von Bezeichnern zu Dateinamen“, beschrieben.
Das Erstellen eines Datenbankverzeichnisses durch manuelles Erstellen eines Verzeichnisses unter dem Datenverzeichnis (zum Beispiel mit mkdir) wird in MySQL 8.0 nicht unterstützt.
Wenn Sie eine Datenbank erstellen, lassen Sie den Server das Verzeichnis und die Dateien darin verwalten. Das direkte Manipulieren von Datenbankverzeichnissen und -dateien kann zu Inkonsistenzen und unerwarteten Ergebnissen führen.
MySQL hat keine Begrenzung für die Anzahl der Datenbanken. Das zugrundeliegende Dateisystem kann eine Begrenzung für die Anzahl der Verzeichnisse haben.
Sie können auch das Programm mysqladmin verwenden, um Datenbanken zu erstellen. Siehe Abschnitt 4.5.2, „mysqladmin – Ein Verwaltungsprogramm für den MySQL-Server“.