Documentation Home
MySQL 8.0 参考手册  / 第 13 章 SQL 语句  / 13.1 数据定义语句  /  13.1.12 CREATE DATABASE 语句

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 SCHEMA是的同义词CREATE DATABASE

如果数据库存在而您没有指定 ,则会发生错误 IF NOT EXISTS

CREATE DATABASELOCK TABLES在具有活动语句 的会话中不允许。

每个create_option指定一个数据库特征。数据库特征存储在数据字典中。

MySQL 中的数据库被实现为包含与数据库中的表相对应的文件的目录。因为最初创建数据库时没有表,所以该 CREATE DATABASE语句只在MySQL数据目录下创建一个目录。允许的数据库名称的规则在 第 9.2 节“模式对象名称”中给出。如果数据库名称包含特殊字符,则数据库目录的名称包含这些字符的编码版本,如 第 9.2.4 节“标识符到文件名的映射”中所述。

MySQL 8.0 不支持 通过在数据目录下手动创建目录(例如使用 mkdir )来创建数据库目录。

创建数据库时,让服务器管理目录和其中的文件。直接操作数据库目录和文件可能会导致不一致和意外结果。

MySQL 对数据库的数量没有限制。底层文件系统可能对目录数量有限制。

您还可以使用mysqladmin程序来创建数据库。请参阅第 4.5.2 节,“mysqladmin — 一个 MySQL 服务器管理程序”