连接方式
SelectDB Cloud 兼容 MySQL 网络协议,可以使用 MySQL 命令行客户端、JDBC/ODBC 驱动以及 DBeaver、Navicat 等数据库工具连接仓库。控制台还提供 Stream Load 和 MCP 的连接信息。
获取连接信息
- 登录 SelectDB Cloud 控制台,选择目标仓库,单击左侧导航栏的 连接。
- 选择需要使用的网络连接:
- SaaS 仓库:选择 公网连接;如需使用私网,选择 私网连接 > 私有网络访问 SelectDB,在目标终端节点所在行选择连接方式。
- BYOC 仓库:在连接页获取仓库地址。客户端需要能够访问该地址所在的网络。
- 选择 MySQL CLI、JDBC、Stream Load 或 MCP,查看对应的连接详情和示例,单击复制图标复制所需内容。如果页面提供 FE 分组 选择器,先选择目标 FE 分组,再复制连接信息。
| 连接方式 | 页面提供的信息 |
|---|---|
| MySQL CLI | 主机地址、端口、用户名和连接命令。 |
| JDBC | 主机地址、端口、用户名和 JDBC URL 模板。 |
| Stream Load | 端点地址、请求 URL 模板,以及 网络要求 中的 HTTP 协议端口和各集群端口。 |
| MCP | MCP Server 地址。私网终端节点的连接弹窗不提供 MCP 选项。 |
如果 BYOC 仓库的连接页提供 Arrow Flight SQL 选项,也可以获取对应连接信息。
连接前检查
- 公网和私网的连接地址不同,请使用所选网络对应的主机地址和端口。私网客户端必须能够访问终端节点所在的 VPC。
- 使用公网连接时,需要在仓库的公网 IP 白名单中允许客户端的出口 IP;BYOC 仓库还需要检查云侧安全组、访问控制和路由。具体操作参见网络设置。
- 仓库数据库账号与控制台账号相互独立。连接页默认展示
admin,也可以使用具有所需权限的其他数据库用户。- 密码仅在创建仓库时显示一次。忘记密码时,有权限的管理员可以使用连接页的 重置密码,或在 仓库设置 > 安全 中单击 修改密码。修改后需要同步更新应用程序的连接凭证。
- 开启 TLS 或 HTTPS 的仓库应使用控制台提供的域名和加密连接参数;通过私网连接时,还需完成对应的内网 DNS 配置。
MySQL Client
-
从 MySQL 官网 下载并安装 MySQL 客户端。SelectDB Cloud 兼容 MySQL 5.7 及以上版本的客户端。
-
在控制台连接页选择 MySQL CLI,复制 命令。
-
在客户端执行命令,按提示输入数据库用户密码。例如:
mysql -h <HOST> -P <PORT> -u admin -p将
<HOST>和<PORT>替换为控制台提供的主机地址和端口。开启 TLS 时,使用控制台生成的命令,例如:mysql -h <HOST> -P <PORT> -u admin -p --ssl-mode=REQUIRED -
出现
mysql>提示符后,执行 SQL 验证连接:SHOW DATABASES;
SHOW CLUSTERS;
如果连接失败,先检查主机地址、端口、网络可达性、公网 IP 白名单和数据库凭证。例如,以下错误可能与网络或白名单有关,不能仅凭该错误判断原因:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet'
MySQL JDBC Connector
- 从 MySQL Connector/J 官网 获取 JDBC 驱动,并添加到 Java 项目的依赖中。
- 在控制台连接页选择 JDBC,复制 JDBC URL 模板。
- 将模板中的数据库名、用户名和密码占位符替换为实际值。保留控制台提供的主机地址、端口及 TLS 参数。
- 在应用程序中建立连接并执行 SQL。
应用程序使用控制台提供的统一连接入口,无需自行枚举多个 FE 节点。数据库名部分支持以下形式:
| 形式 | 说明 |
|---|---|
database_name | 连接指定数据库,使用该用户的默认计算集群。 |
database_name@cluster_name | 连接指定数据库,并使用指定计算集群。数据库用户需要具有对应权限。 |
以下示例通过 JDBC 查询集群信息。连接地址、用户名和密码从环境变量读取:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
String url = System.getenv("SELECTDB_JDBC_URL");
String user = System.getenv("SELECTDB_USER");
String password = System.getenv("SELECTDB_PASSWORD");
try (Connection connection = DriverManager.getConnection(url, user, password);
Statement statement = connection.createStatement();
ResultSet result = statement.executeQuery("SHOW CLUSTERS")) {
int columnCount = result.getMetaData().getColumnCount();
while (result.next()) {
for (int i = 1; i <= columnCount; i++) {
System.out.println(result.getObject(i));
}
}
}
SELECTDB_JDBC_URL 的非加密连接示例为 jdbc:mysql://<HOST>:<PORT>/<DATABASE>@<CLUSTER>。开启 TLS 时,应保留控制台模板中的加密参数,例如 sslMode=REQUIRED;不要使用旧示例中的 useSSL=false 覆盖加密设置。
DBeaver 和 Navicat
DBeaver
- 在 DBeaver 中新建数据库连接,选择 MySQL。
- 使用控制台 MySQL CLI 或 JDBC 连接详情中的主机地址、端口、数据库用户名及密码填写连接配置。按需填写目标数据库。
- 如果仓库开启 TLS,在驱动或 SSL 配置中启用对应的加密连接设置。
- 测试连接,成功后保存并打开连接。
Navicat
- 在 Navicat 中新建 MySQL 连接。
- 填写连接名称,以及控制台提供的主机地址、端口、数据库用户名和密码。
- 如果仓库开启 TLS,在 SSL 配置中启用对应的加密连接设置。
- 测试连接,成功后保存并打开连接。
Stream Load
- 在控制台连接页选择 Stream Load。
- 复制 端点地址 或 请求 URL 模板,将数据库名和表名替换为实际值。
- 按 网络要求 放行 HTTP 协议端口和目标集群端口。Stream Load 请求可能重定向到集群端口,客户端必须能够访问重定向后的地址和端口。
- 使用具有导入权限的数据库用户提交导入请求。
Stream Load 的请求参数和示例参见 Stream Load。开启 HTTPS 时,使用控制台提供的 HTTPS 地址。
MCP
在控制台连接页选择 MCP,复制 MCP Server 地址,并使用数据库用户凭证配置 AI 客户端。配置方法参见 SelectDB MCP 快速开始。
其他连接方式
如果希望直接在浏览器中查询数据,可以单击控制台左侧导航栏的 SQL 编辑器。使用其他 MySQL 兼容工具时,同样使用连接页提供的主机地址、端口和数据库用户凭证。