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 SETgibt den Standardzeichensatz der Datenbank an. Die OptionCOLLATEgibt 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 SETbzw.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 OptionENCRYPTIONnicht angegeben wird, definiert der Wert der Systemvariablendefault_table_encryptiondie Standard-Datenbankverschlüsselung. Wenn die Systemvariabletable_encryption_privilege_checkaktiviert ist, ist die BerechtigungTABLE_ENCRYPTION_ADMINerforderlich, um eine Standardverschlüsselungseinstellung anzugeben, die von der Einstellungdefault_table_encryptionabweicht. 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“.