数据库支持
了解 DBX 可以连接哪些数据库,以及每类高级功能支持哪些引擎。
DBX 主应用会尽量使用 Rust 原生驱动。部分数据库通过 MySQL 或 PostgreSQL 兼容协议连接,部分数据库通过 Agent 驱动或可选的 JDBC 插件 扩展。
连接类型
新建连接窗口会提供带默认端口和驱动标签的预设类型。
| 分组 | 类型 | 说明 |
|---|---|---|
| 核心 SQL 数据库 | MySQL、PostgreSQL、SQLite、DuckDB、ClickHouse、SQL Server、Oracle、Redshift、DM、GaussDB | 直接出现在 DBX 连接选择器中 |
| 文档与键值数据库 | Redis、MongoDB、Elasticsearch | 根据数据模型使用专门浏览器或查询流程,不完全等同于关系型表格 |
| MySQL 兼容类型 | MariaDB、TiDB、OceanBase、Doris、SelectDB、StarRocks、GoldenDB、自定义 MySQL | 复用 MySQL 风格连接能力 |
| PostgreSQL 兼容类型 | openGauss、KingBase、HighGo、Vastbase、CockroachDB、自定义 PostgreSQL | 复用 PostgreSQL 风格连接能力 |
| 文件型数据库 | SQLite、DuckDB、Microsoft Access | 选择本地数据库文件,不填写主机和端口 |
| Agent/JDBC 扩展类型 | H2、Snowflake、Trino、Hive、DB2、Informix、Neo4j、Cassandra、BigQuery、Kylin、SunDB、TDengine、JDBC | 功能覆盖取决于对应驱动路径 |
默认端口
| 类型 | 默认端口 |
|---|---|
| MySQL / MariaDB / GoldenDB | 3306 |
| PostgreSQL / openGauss / GaussDB / Vastbase | 5432 |
| Redis | 6379 |
| MongoDB | 27017 |
| ClickHouse | 8123 |
| SQL Server | 1433 |
| Oracle | 1521 |
| Elasticsearch | 9200 |
| TiDB | 4000 |
| OceanBase | 2881 |
| Doris / SelectDB / StarRocks | 9030 |
| Redshift | 5439 |
| CockroachDB | 26257 |
| DM | 5236 |
| KingBase | 54321 |
| HighGo | 5866 |
| H2 | 9092 |
| Snowflake | 443 |
| Trino | 8080 |
| Hive | 10000 |
| DB2 | 50000 |
| Informix | 9088 |
| Neo4j | 7687 |
| Cassandra | 9042 |
| BigQuery | 443 |
| Kylin | 7070 |
| SunDB | 22000 |
| TDengine | 6041 |
SQLite、DuckDB、Access 和 JDBC 在不需要网络端口时,会在连接模型中保存为端口 0。
功能矩阵
DBX 只会在具备足够元数据和 SQL 生成能力的数据库上启用高级功能。
| 功能 | 支持类型 |
|---|---|
| Schema 感知树 | PostgreSQL、SQL Server、Oracle、Redshift、DM、GaussDB、KingBase、HighGo、Vastbase、JDBC、H2、Snowflake、Trino、DB2、TDengine |
| ER 图 | MySQL、PostgreSQL、SQLite、SQL Server、Oracle、Redshift、DM、GaussDB、KingBase、HighGo、Vastbase、GoldenDB、Access、H2、DB2 |
| 数据库搜索 | MySQL、PostgreSQL、SQLite、SQL Server、Oracle、Redshift、DuckDB、ClickHouse、DM、GaussDB、KingBase、HighGo、Vastbase、GoldenDB、Access、H2、Snowflake、Trino、Hive、DB2、Informix、Neo4j、Cassandra、BigQuery、Kylin、SunDB、TDengine |
| 表数据导入 | MySQL、PostgreSQL、SQLite、DuckDB、ClickHouse、SQL Server、Oracle、Doris、StarRocks、Redshift、DM、GaussDB、KingBase、HighGo、Vastbase、GoldenDB、Access |
| 表结构编辑器 | MySQL、PostgreSQL、SQLite、SQL Server |
| 创建数据库 | MySQL、PostgreSQL、SQL Server、ClickHouse、Oracle、DM、GaussDB、Doris、StarRocks、Redshift |
| 字段血缘 | MySQL、PostgreSQL、SQLite、SQL Server、Oracle、Redshift、DM、GaussDB |
| 数据传输 | MySQL、PostgreSQL、SQLite、SQL Server、Oracle、ClickHouse、DuckDB、DM、GaussDB |
| 不支持 SQL 文件执行 | Redis、MongoDB、Elasticsearch |
如果某个数据库可以连接,但没有出现在某个功能行中,该功能可能会被隐藏或受限。这是为了避免 DBX 生成无法可靠审查的 SQL。
连接选项
大多数网络数据库支持主机、端口、用户名、密码、默认数据库、URL 参数、SSL、连接颜色、SSH 隧道和代理设置。文件型数据库会改为选择本地文件。
DBX 也可以解析常见连接 URL,例如 MySQL、PostgreSQL、Redis、MongoDB、ClickHouse、SQL Server、Oracle、Elasticsearch、DM、GaussDB、openGauss、TDengine 和 Access。
DM 与 ODBC
DM 通过 ODBC 路径连接,需要在运行 DBX 的机器上安装 DM ODBC 驱动。
sudo apt install unixodbc
# 安装 DM8,安装包包含 ODBC 驱动
# 下载地址:https://eco.dameng.com/download/
sudo tee -a /etc/odbcinst.ini << 'EOF'
[DM8 ODBC DRIVER]
Description = DM8 ODBC Driver
Driver = /opt/dmdbms/bin/libdodbc.so
EOFDM 安装程序通常会自动注册 ODBC 驱动。
DM 暂未提供 macOS 原生 ODBC 驱动。开发或测试建议使用 Linux 主机连接。
扩展支持
当目标数据库不在内置类型中,或团队必须使用厂商 JDBC 驱动时,可以使用 JDBC 插件。JDBC 会把厂商驱动 JAR 放在 DBX 主应用之外,由你决定安装哪些驱动文件。