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
skapar en databas med det angivna namnet. För att använda det här uttalandet måste du ha privilegiet CREATE
för databasen. CREATE SCHEMA
är en synonym till CREATE DATABASE
.
Ett fel uppstår om databasen finns och du inte har angett IF NOT EXISTS
.
CREATE DATABASE
är inte tillåtet i en session som har ett aktivt LOCK TABLES
-meddelande.
Varje create_option
anger en databasegenskap. Databasegenskaper lagras i datalängden.
-
Alternativet
CHARACTER SET
anger standardteckenuppsättningen för databasen. AlternativetCOLLATE
anger standarddatabasens kollationering. Information om namn på teckenuppsättningar och kollationeringar finns i kapitel 10, Teckenuppsättningar, kollationeringar, Unicode.Om du vill se de tillgängliga teckenuppsättningarna och kollationerna använder du
SHOW CHARACTER SET
respektiveSHOW COLLATION
. Se avsnitt 13.7.7.3, ”SHOW CHARACTER SET Statement”, och avsnitt 13.7.7.4, ”SHOW COLLATION Statement”. -
Alternativet
ENCRYPTION
, som infördes i MySQL 8.0.16, definierar standardkrypteringen av databasen, som ärvs av tabeller som skapas i databasen. De tillåtna värdena är'Y'
(kryptering aktiverad) och'N'
(kryptering inaktiverad). Om alternativetENCRYPTION
inte anges definierar värdet på systemvariabelndefault_table_encryption
standardkrypteringen för databasen. Om systemvariabelntable_encryption_privilege_check
är aktiverad krävs privilegietTABLE_ENCRYPTION_ADMIN
för att ange en standardkrypteringsinställning som skiljer sig från inställningendefault_table_encryption
. Mer information finns i Definiera en krypteringsstandard för scheman och allmänna tabellutrymmen.
En databas i MySQL implementeras som en katalog som innehåller filer som motsvarar tabeller i databasen. Eftersom det inte finns några tabeller i en databas när den först skapas, skapar CREATE DATABASE
-angivelsen endast en katalog under MySQL-datakatalogen. Regler för tillåtna databasnamn ges i avsnitt 9.2, ”Schema Object Names”. Om ett databasnamn innehåller specialtecken, innehåller namnet för databaskatalogen kodade versioner av dessa tecken enligt beskrivningen i avsnitt 9.2.4, ”Mapping of Identifiers to File Names” (Mappning av identifierare till filnamn).
Att skapa en databaskatalog genom att manuellt skapa en katalog under datakatalogen (till exempel med mkdir) stöds inte i MySQL 8.0.
När du skapar en databas, låt servern hantera katalogen och filerna i den. Att hantera databaskataloger och filer direkt kan orsaka inkonsekvenser och oväntade resultat.
MySQL har ingen gräns för antalet databaser. Det underliggande filsystemet kan ha en gräns för antalet kataloger.
Du kan också använda programmet mysqladmin för att skapa databaser. Se avsnitt 4.5.2, ”mysqladmin – ett administrationsprogram för MySQL-servern”.