mysql如何创建数据库_mysql数据库创建语法解析

来源:这里教程网 时间:2026-02-28 20:53:16 作者:

CREATE DATABASE 语句的基本写法

MySQL 创建数据库最直接的方式就是用

CREATE DATABASE
,它不需要前置条件,只要用户有对应权限就能执行。最简形式是:
CREATE DATABASE mydb;
这条命令会在 MySQL 实例中新建一个名为
mydb
的数据库,字符集和排序规则都使用服务器默认值(通常是
utf8mb4
utf8mb4_0900_ai_ci
,取决于 MySQL 版本)。

指定字符集和排序规则的关键参数

生产环境几乎从不依赖默认值,因为中文、emoji 或特殊符号容易出乱码。必须显式声明

CHARACTER SET
COLLATE

CHARACTER SET utf8mb4
:支持完整 Unicode(含 emoji),比旧的
utf8
更可靠
COLLATE utf8mb4_unicode_ci
:适合多语言排序比较;若需大小写敏感,可用
utf8mb4_bin

完整写法示例:

CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
注意:两个参数要成对出现,只写
CHARACTER SET
不写
COLLATE
会自动补上对应默认排序规则,但显式写出更可控。

避免“Database exists”错误的防御写法

重复执行

CREATE DATABASE
会报错
ERROR 1007 (HY000): Can't create database 'xxx'; database exists
。加
IF NOT EXISTS
可跳过报错,但要注意它只是防止报错,并不会覆盖或修改已有库的字符集:

已存在同名库且字符集不同?该语句不做任何变更,静默退出 想确保字符集一致,得先
DROP DATABASE
再重建(慎用!线上禁用)
或者用
ALTER DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
单独调整

安全创建写法:

CREATE DATABASE IF NOT EXISTS myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

mysqladmin 命令行方式创建(非 SQL 场景)

有些自动化脚本或 CI/CD 流程里不用进 MySQL 客户端,而是直接调命令行工具。这时用

mysqladmin

基本命令:
mysqladmin -u root -p create mydb
,执行后会提示输入密码
它不支持指定字符集——建出来的库仍走 MySQL 全局默认配置 如果需要定制字符集,必须回到 SQL 方式,或在
my.cnf
中提前配好
default-character-set

也就是说,

mysqladmin
只适合快速测试,不能替代
CREATE DATABASE
的精细控制。

真正容易被忽略的是:数据库创建后,

CREATE TABLE
时如果不显式指定字符集,表会继承库级设置;但如果库是用默认值建的,而 MySQL 配置文件里又没统一设
utf8mb4
,后续插入中文就可能报错或截断。所以建库这一步,不是“能跑就行”,而是整个数据一致性链条的第一环。

相关推荐