“Unknown database”错误是MySQL或PostgreSQL服务端返回的明确拒绝信号,表明连接已建立且认证通过,但指定的数据库名不存在、拼写错误、大小写不匹配或无访问权限;常见于配置填错、空格、下划线误写、库名未创建或DBeaver中“Database/Schema”字段为空/无效。

填错 database 参数导致连接失败
“Unknown database” 报错不是 DBeaver 自己报的,而是 PostgreSQL 或 MySQL 服务端返回的明确拒绝信号。它说明 DBeaver 成功建立了 TCP 连接、也完成了认证,但在尝试切换到你指定的库时失败了——因为那个库名根本不存在,或者拼写大小写不一致(PostgreSQL 对库名默认区分大小写,MySQL 在 Linux 下也区分)。常见于:复制粘贴时多了一个空格、把 springbootdb 写成 springbootdb_、或者误把连接别名当成了真实库名。
检查方式很简单:psql -U username -h host -p port -l(PostgreSQL)或 mysql -u user -p -e "SHOW DATABASES;"(MySQL),确认目标库是否真实存在、名称是否完全匹配。
database 字段为空或填了无效值
DBeaver 的连接配置里,“Database / Schema” 这一栏不是可选的——即使你只想连上看看有哪些库,也必须填一个已存在的库名。留空、填 postgres(PostgreSQL 默认库)但该库被删过、或者填了个只读用户无权访问的库,都会触发这个错误。
- PostgreSQL 用户首次连接,建议先填
postgres(前提是没被手动删掉) - MySQL 用户注意:如果填了不存在的库,且 JDBC URL 没加
allowPublicKeyRetrieval=true&useSSL=false等容错参数,也可能被拦截在更早阶段 - 容器或云数据库(如阿里云 RDS、腾讯云 CDB)可能默认禁用
information_schema或mysql库的直连,需改用平台分配的初始库名
连上了却点不开表,提示 No database selected
这是另一个高频混淆点:连接测试成功 ✅,左侧能看到数据库列表,但一展开某个库就报 No database selected。这不是服务端错误,而是 DBeaver 客户端没把上下文绑定到具体库。原因通常是:
- 连接配置里填了正确的
database,但连接后没手动“设为默认”——右键该数据库 → “Set as default object” - 用了 SSH 隧道或代理,连接串中
database被忽略,实际走的是驱动默认库,此时必须显式设置 - 某些 PostgreSQL 驱动版本(如 42.6.x)对空 schema 支持不稳定,可在驱动属性里加
currentSchema=public
导出 SQL 后恢复时报 Unknown database,其实是编码/格式问题
这个错误容易被误判为库名问题,但实际常发生在导入环节。DBeaver 导出的 SQL 文件头部若含 BOM 或用了 Windows 换行符 + UTF-8 编码,在 MySQL 命令行客户端导入时会解析失败,报 Unknown database 或 Unknown command '\'。
解决方法很直接:
- 用
file -i your_dump.sql查编码,确保是utf-8无 BOM - 导入前加参数:
mysql --default-character-set=utf8mb4 -u user -p - 避免用 DBeaver 自带的“Execute SQL script”,改用命令行或 MySQL Workbench 导入更可控
Unknown database 就会准时出现。


















