文档首页
MySQL 8.4 参考手册
相关文档 下载本手册

MySQL 8.4 参考手册  /  ...  /  CREATE DATABASE 语句

15.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 数据目录下创建一个目录。允许的数据库名称规则在 第 11.2 节,“模式对象名称” 中给出。如果数据库名称包含特殊字符,则数据库目录的名称包含这些字符的编码版本,如 第 11.2.4 节,“标识符到文件名的映射” 中所述。

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

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

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

您还可以使用 mysqladmin 程序创建数据库。参见 第 6.5.2 节,“mysqladmin — MySQL 服务器管理程序”