跳到主要内容
版本:4.x

连接方式

SelectDB 采用了 MySQL 网络连接协议,所以兼容 MySQL 生态的命令行工具、JDBC/ODBC 和可视化工具等,都可以连接访问 SelectDB。下面以 MySQL Client, MySQL JDBC Connector 和 DBeaver/Navicat 为例来说明。

MySQL Client​

从 MySQL 官方网站下载 MySQL Client,或者下载我们提供的免安装 Linux 版的 MySQL 客户端。当前 SelectDB 主要兼容 MySQL 5.7 及其以上的客户端。

从 SelectDB Cloud 的管理控制台中相应仓库下的“连接”菜单里,获得连接相关的信息。

注意:

  1. 仓库支持公网连接和私网连接(Privatelink),不同的连接方式,连接信息不同。
  2. 如果开启了 IP 白名单,需要让管理员将客户端的 IP 加入仓库连接的白名单。
  3. SelectDB Cloud 支持用户初始化仓库 admin 用户的密码。用户可以在管理控制台相应仓库的 设置 页修改密码。

假如我们要连接的仓库公网连接如下:

解压下载的 MySQL 客户端,在 bin/ 目录下可以找到 mysql 命令行工具,然后执行下面的命令连接 SelectDB。

mysql -h 59.110.153.154 -P 30622 -u admin

登录后,如果显示如下,一般是由于你客户端的 IP 未加入到管理控制台的连接白名单中。

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 2

显示如下,则代表你连接成功了。

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 119952
Server version: 5.7.37 SelectDB Core version: 2.0.0

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

MySQL JDBC Connector​

请在 MySQL 官方网站下载相应的 JDBC Connector,然后根据控制台连接信息中的 JDBC 连接信息来配置连接。

在开源 Apache Doris 中,经常需要配置多个 FE 节点地址,以便提供高可用的 FE 服务。在 SelectDB Cloud 中,无需配置多个 FE 的节点地址,只需要使用控制台给出的单一 IP。这个 IP 为负载均衡器 IP,后端有多个服务器提供服务,可保证负载均衡与高可用。

下面通过 JDBC 来连接我们的仓库,并且显示当前仓库下的所有 cluster 信息。

在 JDBC 中,原来传递 database name 的地方,我们可以传递使用的集群名参数。

  1. database_name, 比如 jdbc:mysql://59.110.153.154:30622/test,那么会使用数据库 test,使用用户的默认计算集群。
  2. database_name@cluster_name, 比如 jdbc:mysql://59.110.153.154:30622/test@cluster1,那么会使用数据库 test,使用计算集群 cluster1。
String user = "admin";
String password = "admin_password";

String newUrl = "jdbc:mysql://59.110.153.154:30622/test@cluster1?useUnicode=true&characterEncoding=utf8&useTimezone=true&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true";
try {
Connection myCon = DriverManager.getConnection(newUrl, user, password);
Statement stmt = myCon.createStatement();
ResultSet result = stmt.executeQuery("show clusters");
ResultSetMetaData metaData = result.getMetaData();
int columnCount = metaData.getColumnCount();
while (result.next()) {
for (int i = 1; i <= columnCount; i++) {
System.out.println(result.getObject(i));
}
}
} catch (SQLException e) {
log.error("get JDBC connection exception.", e);
}

DBeaver 和 Navicat​

DBeaver​

创建一个到 SelectDB 仓库的 MySQL 连接。

测试连接成功。

创建一个到 SelectDB 仓库的 MySQL 连接。

测试连接成功

其他连接方式​

SelectDB 虽然高度兼容 MySQL 协议和使用方式,但是这些原生面向 MySQL 设计的客户端工具或者 GUI工具,主要还是为了管理 MySQL 数据库,在与 SelectDB 交互时,体验会有所欠缺。所以,SelectDB 开发了体验友好的可视化 WebUI 工具(SelectDB WebUI),请参考 WebUI 章节。