news 2026/9/12 23:51:04

Beekeeper Studio 支持的数据库全景:从 PostgreSQL 到 DynamoDB 的驱动支持矩阵与连接实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Beekeeper Studio 支持的数据库全景:从 PostgreSQL 到 DynamoDB 的驱动支持矩阵与连接实战

Beekeeper Studio 支持的数据库全景:从 PostgreSQL 到 DynamoDB 的驱动支持矩阵与连接实战

【免费下载链接】beekeeper-studioModern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.项目地址: https://gitcode.com/GitHub_Trending/be/beekeeper-studio

Beekeeper Studio 是一款跨平台(Linux、macOS、Windows)的现代 SQL 编辑器与数据库管理工具。本篇文章围绕仓库中 支持的数据库清单(该清单会被 README.md 自动引用构建),完整梳理社区版与付费版对 28 个数据库的官方支持状态,并深入 驱动注册源码 揭示每种数据库的默认端口、特性开关与连接形态,最后给出从新建连接到 SSH 隧道、SSL 验证的实操要点。读完本文,你将能够依据这份支持矩阵准确判断自己的数据库是否受支持、处于何种支持级别,以及如何以正确的方式在 Beekeeper Studio 中建立连接。

支持数据库总览:一张表格看懂官方支持矩阵

官方以一张权威表格统一维护数据库支持状态,这份表格位于 docs/includes/supported_databases.md,并被 README.md 通过自动构建机制(<!-- SUPPORT_BEGIN -->/<!-- SUPPORT_END -->注释标记)同步渲染到项目首页,同时在 docs/user_guide/connecting/supported-databases.md 中通过{% include-markdown "../../includes/supported_databases.md" %}直接引入到用户文档站点。

表格共有四列,含义如下:

含义
Database数据库产品名称
Support官方支持级别(⭐ Full Support / 🧪 Beta Support / ⏳ Coming Soon)
Community社区版(免费版)是否支持(✅ 表示包含)
Paid Editions付费版(Ultimate 等)是否支持(✅ 表示包含)

完整表格数据如下(与仓库文档逐行一致):

数据库支持级别社区版付费版
PostgreSQL⭐ Full Support
MySQL⭐ Full Support
SQLite⭐ Full Support
SQL Server⭐ Full Support
Amazon Redshift⭐ Full Support
CockroachDB⭐ Full Support
MariaDB⭐ Full Support
TiDB⭐ Full Support
Google BigQuery⭐ Full Support
Redis⭐ Full Support
GreengageDB⭐ Full Support
Oracle Database⭐ Full Support
Cassandra⭐ Full Support
ScyllaDB⭐ Full Support(经 Cassandra 驱动)
Firebird⭐ Full Support
LibSQL⭐ Full Support
ClickHouse⭐ Full Support
DuckDB⭐ Full Support
SQL Anywhere⭐ Full Support
MongoDB⭐ Full Support
Trino / Presto⭐ Full Support
SurrealDB⭐ Full Support
Snowflake⭐ Full Support
DynamoDB🧪 Beta Support
SAP HANA⏳ Coming Soon

表格中几个值得注意的要点:

  • 社区版免费覆盖 11 个数据库:PostgreSQL、MySQL、SQLite、SQL Server、Amazon Redshift、CockroachDB、MariaDB、TiDB、Google BigQuery、Redis、GreengageDB,均同时出现在社区版与付费版中。
  • 付费版独享数据库:Oracle、Cassandra、ScyllaDB、Firebird、LibSQL、ClickHouse、DuckDB、SQL Anywhere、MongoDB、Trino/Presto、SurrealDB、Snowflake、DynamoDB 属于付费(Ultimate)版本能力。
  • 支持级别定义:⭐ Full Support 表示官方团队完整支持并验证可正常工作;🧪 Beta Support 表示官方团队已支持并验证可用,但可能存在少量小缺陷;⏳ Coming Soon 表示正在开发中。
  • ScyllaDB 与 Cassandra 的兼容关系:表格明确标注 ScyllaDB 是「经 Cassandra 驱动」提供的 Drop-in 兼容支持。

从清单到实现:驱动注册表里的数据库特性真相

支持矩阵并非营销文案,而是与仓库源码中的驱动注册表一一对应。核心实现在 apps/studio/src/lib/db/clients/index.ts 的CLIENTS数组中,每个条目通过keynamedefaultPortdefaultDatabasedisabledFeatures字段描述一种数据库连接能力:

export const CLIENTS: ClientConfig[] = [ { key: 'postgresql', name: 'PostgreSQL', defaultDatabase: 'postgres', defaultPort: 5432, disabledFeatures: ['server:domain'], }, // ... ];

findClient(key)会按key查找配置并动态生成supports(feature)能力判断:

export function findClient(key: string): Client | undefined { const client = CLIENTS.find((cli) => cli.key === key); if (!client) return undefined; return { ...client, get supportsSocketPath(): boolean { return this.supports('server:socketPath'); }, supports(feature: string): boolean { return !client.disabledFeatures?.includes(feature); }, }; }

即:凡未被列入disabledFeatures的功能,该数据库默认都支持。这一机制决定了新建连接表单中每个字段(SSL、SSH、Socket、Schema、域名、建表脚本等)是否可见或可填,是理解各数据库连接选项差异的钥匙。

各数据库的默认端口与默认数据库

结合注册表源码,各数据库的连接默认参数如下(这些值会被预先填入新建连接表单,通常无需手动修改):

key数据库默认端口默认数据库
postgresqlPostgreSQL5432postgres
greengageGreengageDB5432postgres
redshiftAmazon Redshift5432postgres
mysqlMySQL3306
mariadbMariaDB3306
sqlserverMicrosoft SQL Server1433
sqliteSQLite—(本地文件,默认:memory::memory:
cassandraCassandra9042
scylladbScyllaDB9042
oracleOracle1521
bigqueryBigQuery443
firebirdFirebird3050
starrocksStarRocks9030
tidbTiDB4000
libsqlLibSQL8080(本地文件,默认:memory::memory:
duckdbDuckDB—(本地文件,默认:memory::memory:
trinoTrino8080
clickhouseClickHouse8123
sqlanywhereSqlAnywhere2638
surrealdbSurrealDB8000
redisRedis63790
bedrockBedrock3306
dynamodbDynamoDB8000
snowflakeSnowflake

各数据库禁用的功能特性

disabledFeatures精确刻画了每种数据库的连接形态差异,从源码逐条整理如下:

  • SQLite / LibSQL / DuckDB:这三类嵌入式/本地文件数据库禁用了几乎全部服务器端特性——server:sslserver:hostserver:portserver:socketPathserver:userserver:passwordserver:schemaserver:domainserver:ssh;SQLite 与 LibSQL 还禁用了scriptCreateTable(可视化建表脚本)与cancelQuery(取消查询)。这也是为什么连接 SQLite 时只需要选择.db文件路径、无需填写主机端口。DuckDB 保留了scriptCreateTable,但同样禁用cancelQuery(源码注释标注// TODO how to do this?,即取消查询能力尚待实现)。
  • MySQL / MariaDB / TiDB / StarRocks / Bedrock:禁用server:schemaserver:domainserver:socketPathWithCustomPort,但保留了 socket 连接server:socketPath未禁用),与官方连接文档中「MySQL 默认本地安装即使用 socket」的描述一致;其中 MySQL 在 docs/user_guide/connecting/connecting.md 中被明确作为 socket 连接的典型例子。
  • PostgreSQL / GreengageDB:仅禁用server:domain,其余能力(SSL、SSH、socket、schema)全部开放。
  • Amazon Redshift:禁用server:domainserver:socketPathserver:socketPathWithCustomPort,即只能走 TCP 连接。
  • CockroachDB:禁用server:domainserver:socketPathserver:socketPathWithCustomPort
  • SQL Server:禁用server:socketPathserver:socketPathWithCustomPort
  • Oracle:禁用server:socketPathserver:socketPathWithCustomPort
  • Firebird:禁用server:schemaserver:socketPathserver:socketPathWithCustomPort
  • Cassandra / ScyllaDB:禁用server:sslserver:socketPathserver:schemaserver:domainscriptCreateTablecancelQueryserver:socketPathWithCustomPort。两者配置几乎一致,再次印证「ScyllaDB 经 Cassandra 驱动提供兼容支持」。
  • BigQuery:作为云原生数据仓库,禁用server:sslserver:socketPathserver:userserver:passwordserver:schemaserver:domainserver:sshscriptCreateTable,默认端口 443。其驱动实现位于 apps/studio/src/lib/db/clients/bigquery.ts,底层直接使用@google-cloud/bigquery官方 SDK,并通过BigQueryCursor(见 apps/studio/src/lib/db/clients/bigquery/BigQueryCursor.ts)实现流式游标查询。
  • Trino:禁用server:socketPathcancelQuery,其topLevelEntityCatalog,意味着侧边栏的顶层实体是目录(Catalog),与普通数据库的 Schema 层级不同。
  • ClickHouse:仅禁用server:socketPath
  • MongoDB:注册表中未声明disabledFeatures,即默认支持所有连接能力,对应其文档 docs/user_guide/connecting/mongodb.md。
  • Redis:禁用server:socketPathserver:socketPathWithCustomPortserver:schemaserver:domainserver:sshserver:userscriptCreateTablecancelQuery,默认数据库为0。驱动实现在 apps/studio/src/lib/db/clients/redis.ts,底层使用redis(node-redis v4)客户端,并通过redis-splitargs解析命令参数。
  • SurrealDB:禁用server:socketPathserver:socketPathWithCustomPortserver:ssl
  • DynamoDB:作为 Beta 支持数据库,几乎禁用所有传统连接字段(host、port、user、password、domain、schema、ssl、ssh、socketPath 等),连接依赖 AWS 凭证体系。
  • SnowflakedisabledFeatures为空数组,表示默认开放全部连接特性。

值得强调的是,支持矩阵文档与驱动注册表在版本演进上是同步的:例如 Snowflake 的迁移脚本 20260501_add_snowflake_options.js、DynamoDB 的 20260417_add_dynamodb_options.js、SurrealDB 的 20250702_add_surrealdb_options.js 等迁移文件,均反映了这些新数据库的连接选项逐步落入应用数据库存储的过程。

跨平台一致性:一份支持矩阵,三端同一能力

支持文档 docs/user_guide/connecting/supported-databases.md 开篇即声明:

Beekeeper Studio hasfull feature parityacross all supported operating systems, so the databases below work the same on Windows, MacOS, and Linux.

所有支持的数据库在 Windows、macOS、Linux 三个平台上具有完全一致的功能对等性——同一个数据库在三端的使用方式、功能集合完全相同,不存在某端功能缺失的情况。这一承诺与仓库同时维护 Windows(electron-builder 产出.exe/.msi/.nsis安装包)、macOS(.dmg)、Linux(deb/rpm/AppImage/snap)构建产物的工程结构相互印证(参见 electron-builder-config.js)。

实战:从支持矩阵到成功连接

确认目标数据库位于支持矩阵之后,即可按 数据库连接指南 的流程建立连接。Beekeeper Studio 提供三种主要连接方式:

  1. 本地文件型数据库(SQLite 等):直接在文件管理器中双击.db文件,即可用 Beekeeper Studio 打开;也可以在终端中通过open postgresql://user@host/database(macOS)或xdg-open postgresql://user@host/database(Linux)从命令行打开连接 URL 或本地文件。
  2. TCP 连接:在连接界面下拉框选择数据库类型,填写主机名(Host)与端口(Port);这是绝大多数数据库(PostgreSQL、MySQL、SQL Server、Oracle 等)的标准方式。
  3. Socket 连接:仅当数据库服务运行在本机时可用(例如 MySQL 默认安装即使用 socket),且SSL、SSH 等高级连接选项只在 TCP 连接下可用

首次安装的 Beekeeper Studio 自带一个Demo Database(内置于应用的小型 SQLite 数据库),可在不连接真实数据库的情况下体验全部功能,是评估支持矩阵与界面能力的零成本方式。

SSL 连接的三种形态与 sslmode 映射

连接表单中的 SSL 配置(连接指南 有完整截图说明)提供三种模式:

  1. Trust the server:开启 SSL 但不提供自定义证书,rejectUnauthorized关闭,为默认选项;
  2. Required Cert:开启 SSL、提供自定义证书、关闭rejectUnauthorized(校验服务器但不校验证书链);
  3. Verified Cert:开启 SSL、提供自定义证书、开启rejectUnauthorized(完整校验证书)。

命令行客户端常见的sslmode参数与 Beekeeper 的映射关系如下:

sslmode是否开启 SSLrejectUnauthorized
disablen/a
allown/a
prefern/a
requirefalse
verify-cafalse
verify-fulltrue

SSH 隧道的客户端配置要点

对于只能通过跳板机访问的内网数据库,Beekeeper Studio 内置 SSH 隧道支持,配置项包括:

  • SSH Hostname / Port:SSH 服务器地址(默认端口 22,可在表单中修改);
  • Bastion Host(JumpHost,可选):当目标网络要求经跳板机中转时填写;
  • Keepalive Interval(可选):以秒为单位指定空闲时的保活探测间隔,等价于 ssh 命令行的ServerAliveInterval填 0 表示禁用
  • 认证方式Automatic(默认,按 SSH agent →~/.ssh/configIdentityFile→ 默认密钥的顺序自动尝试)、Key File(指定私钥文件,可带 passphrase)、Username and Password(用户名密码)。

SSH 连接之前需确认服务器/etc/ssh/sshd_config中包含AllowTcpForwarding yes;若使用ssh-rsa算法生成的密钥,还需追加PubkeyAcceptedKeyTypes +ssh-rsa(注意+号是刻意保留的,表示追加而非覆盖)。

另外,Beekeeper Studio 支持在 SSH 主机名字段直接输入~/.ssh/config中的Host别名,自动解析HostNamePortUserIdentityFileIdentitiesOnly等配置;也支持Match块与行首Include指令。需要特别注意的是,ProxyJump/ProxyCommand不被解析,跳板机应在连接表单的 Bastion Host 字段中显式配置。详见 连接指南 的 SSH 章节。

测试与验证:驱动可靠性的工程保障

仓库为支持矩阵中的大多数数据库配备了集成测试,测试目录位于 apps/studio/tests/integration/lib/db/clients,几乎与支持矩阵一一对应:

  • PostgreSQL:postgres.spec.ts 及 postgres/ 子目录
  • MySQL:mysql.spec.js
  • SQLite:sqlite.spec.js
  • SQL Server:sqlserver.spec.ts、sqlserver-kerberos.spec.ts、sqlserver-winauth.spec.ts
  • MongoDB:mongodb.spec.ts、mongodb-kerberos.spec.ts
  • Oracle:oracle.spec.js
  • Cassandra / ScyllaDB:cassandra.spec.js、scylladb.spec.js
  • ClickHouse:clickhouse.spec.ts
  • DuckDB:duckdb.spec.ts
  • LibSQL:libsql.spec.ts
  • Firebird:firebird.spec.ts
  • GreengageDB:greengage.spec.ts
  • Trino:trino.spec.ts 及 trino/ 子目录
  • Redshift / CockroachDB / MariaDB / TiDB / StarRocks / SurrealDB / DynamoDB / Redis:分别对应 cockroach.spec.js、mariadb.spec.js、tidb.spec.js、starrocks.spec.js、surrealdb.spec.ts、dynamodb.spec.ts(含 dynamodb/setupDb.ts)、redis.spec.ts
  • SSH 隧道:ssh.spec.js、ssh-mongodb.spec.js、ssh-agent.spec.js 等

此外,仓库还提供了对应数据库的 Docker 测试环境(如 dev/docker_psql_init/、dev/docker_mysql_init/、dev/docker_oracle_init/、dev/docker_mongodb_init/、dev/docker_firebird/ 等),测试脚本可在隔离容器中启动真实数据库实例进行端到端验证。可以说,「⭐ Full Support」的状态是经过真实驱动调用与集成测试双重验证的。

结语:如何用好这份支持矩阵

对于开发者而言,这份数据库支持清单(docs/includes/supported_databases.md)是选择 Beekeeper Studio 作为数据库工作台的首要依据:

  • 需要免费的跨平台 SQL 客户端,可优先关注社区版支持的三行一列:PostgreSQL、MySQL、SQLite、SQL Server、Amazon Redshift、CockroachDB、MariaDB、TiDB、Google BigQuery、Redis、GreengageDB;
  • 涉及 Oracle、MongoDB、ClickHouse、DuckDB、Snowflake 等高级/新兴数据库,则需付费版本,其中 DynamoDB 目前处于 Beta 支持阶段,SAP HANA 仍在开发中;
  • 连接前对照 驱动注册表 的disabledFeatures,可提前判断该数据库是否支持 SSL、SSH、Socket、Schema 等选项,避免在表单中寻找不存在的字段。

结合 连接指南、各数据库专属文档(如 SQLite 连接指南、MongoDB 连接指南、ClickHouse 连接指南 等),你就能在几分钟内完成从选择数据库类型到建立首个连接的完整流程。

【免费下载链接】beekeeper-studioModern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.项目地址: https://gitcode.com/GitHub_Trending/be/beekeeper-studio

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 23:50:17

如何用 Bevy 的 Picking 事件实现 3D 模型的点击拾取与拖拽交互?

如何用 Bevy 的 Picking 事件实现 3D 模型的点击拾取与拖拽交互&#xff1f; 【免费下载链接】bevy A refreshingly simple data-driven game engine built in Rust 项目地址: https://gitcode.com/GitHub_Trending/be/bevy 要在 Bevy 的 3D 场景中让模型可被指针点击、…

作者头像 李华
网站建设 2026/9/12 23:45:00

Go语言URL编码解码实战与性能优化

1. Go语言URL编码解码实战指南在Web开发中&#xff0c;URL编码是个看似简单却暗藏玄机的基础操作。最近处理一个API项目时&#xff0c;就遇到了因为编码不规范导致签名校验失败的坑。Go语言标准库中的net/url包提供了完整的解决方案&#xff0c;但QueryEscape和PathEscape的区别…

作者头像 李华
网站建设 2026/9/12 23:39:15

Postman之外:15款接口测试工具实测与选型指南

Postman 这个名字&#xff0c;基本已经成了接口测试的代名词&#xff0c;很多团队招人时甚至会写“熟悉 Postman”当作一项加分技能。但坦白讲&#xff0c;从 2020 年之后&#xff0c;我越来越少把它当主力工具使用了——不是觉得 Postman 不好用&#xff0c;而是接口测试这件事…

作者头像 李华