DBeaver新建数据库需手动选utf8mb4字符集和utf8mb4_unicode_ci排序规则,否则中文存储或排序异常;默认utf8不支持emoji及部分汉字;建库后无法直接修改字符集,须导出重建;SQL方式更可控,注意命名规范、分号及CREATE权限;新建后需手动刷新连接才能显示。

DBeaver 新建数据库不是点一下就完事的操作——它本质是执行一条 CREATE DATABASE 语句,但界面操作会自动帮你生成、校验并执行,关键在于字符集和排序规则选错,后续中文存不进去或排序异常,连报错都不明显。
右键连接名创建数据库时,字符集必须选 utf8mb4
MySQL 默认的 utf8 实际只支持最多 3 字节的 UTF-8 字符(不包含 emoji 和部分生僻汉字),而 utf8mb4 才是真正的完整 UTF-8。DBeaver 界面里默认可能显示为 utf8 或留空,务必手动下拉选择 utf8mb4。
排序规则推荐选 utf8mb4_unicode_ci(兼顾大小写不敏感和多语言排序),而不是 utf8mb4_general_ci(已弃用)或 utf8mb4_bin(大小写敏感,开发阶段容易踩坑)。
- 如果漏选或选错,建库后插入中文可能报
Incorrect string value - 建库后无法直接修改字符集,只能导出再重建
- 某些老版本 DBeaver 在新建数据库对话框里不显示字符集选项,此时必须切到 SQL 编辑器手写语句
用 SQL 编辑器执行 CREATE DATABASE 更可控
当右键菜单不可用、连接权限受限(比如只有 SELECT 权限没 CREATE),或者需要复用建库脚本时,直接写 SQL 是最稳的方式:
CREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
注意三点:
-
myapp_db不能含短横线(-)、空格或中文,否则要加反引号:`my-app-db` - 语句末尾必须有分号,否则 DBeaver 不识别为可执行语句
- 执行前确认当前连接用户有
CREATE权限,否则报错Access denied for user ... to database 'xxx'
新建数据库后不显示?先点“刷新”再检查连接状态
常见现象:SQL 执行成功提示 “1 row affected”,但左侧导航树里没出现新库;或者右键创建后卡在“正在保存…”不动。
这不是失败,而是 DBeaver 没主动刷新元数据缓存。解决方式很简单:
- 右键连接名 → 刷新(快捷键
F5) - 如果仍不显示,检查连接右上角图标是否为绿色(已连接)。灰色说明连接已断开,需重连
- 极少数情况是 MySQL 的
show databases权限被限制,可执行SHOW DATABASES;验证是否真不可见
真正容易被忽略的是:DBeaver 的“新建数据库”操作依赖 MySQL 用户的全局权限,且一旦建好,后续所有表都默认归属该库——但如果你误在连接根节点(而非具体数据库)下右键建表,DBeaver 会静默失败或抛出模糊错误,不会提醒你“当前无默认库”。











