dbx/docs/content/docs/databases.cn.mdx

128 lines
5.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 数据库支持
description: 了解 DBX 可以连接哪些数据库,以及每类高级功能支持哪些引擎。
---
<Callout type="info">
DBX 主应用会尽量使用 Rust 原生驱动。部分数据库通过 MySQL 或 PostgreSQL 兼容协议连接,部分数据库通过 Agent 驱动或可选的 [JDBC 插件](/cn/docs/plugins) 扩展。
</Callout>
## 连接类型
新建连接窗口会提供带默认端口和驱动标签的预设类型。
| 分组 | 类型 | 说明 |
|---|---|---|
| 核心 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 |
<Callout type="info">
SQLite、DuckDB、Access 和 JDBC 在不需要网络端口时,会在连接模型中保存为端口 `0`。
</Callout>
## 功能矩阵
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 |
<Callout type="warn">
如果某个数据库可以连接,但没有出现在某个功能行中,该功能可能会被隐藏或受限。这是为了避免 DBX 生成无法可靠审查的 SQL。
</Callout>
## 连接选项
大多数网络数据库支持主机、端口、用户名、密码、默认数据库、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 驱动。
<Tabs groupId="dm-platform" items={['Linux', 'Windows', 'macOS']}>
<Tab value="Linux">
```bash
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
EOF
```
</Tab>
<Tab value="Windows">
DM 安装程序通常会自动注册 ODBC 驱动。
</Tab>
<Tab value="macOS">
DM 暂未提供 macOS 原生 ODBC 驱动。开发或测试建议使用 Linux 主机连接。
</Tab>
</Tabs>
## 扩展支持
当目标数据库不在内置类型中,或团队必须使用厂商 JDBC 驱动时,可以使用 [JDBC 插件](/cn/docs/plugins)。JDBC 会把厂商驱动 JAR 放在 DBX 主应用之外,由你决定安装哪些驱动文件。
<Cards>
<Card title="创建连接" href="/cn/docs/getting-started">
安装 DBX、选择数据库类型并测试第一个连接。
</Card>
<Card title="JDBC 插件" href="/cn/docs/plugins">
安装可选 JDBC 插件并导入厂商驱动 JAR。
</Card>
<Card title="SSH 隧道" href="/cn/docs/ssh-tunnel">
连接私有网络或跳板机后的数据库。
</Card>
</Cards>