有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
本文为您介绍通过内网或外网地址来连接 TDSQL-H LibraDB 的分析引擎,并给出了 Linux 连接的示例。

前提条件

TDSQL-H LibraDB 分析引擎处于运行中状态 。
TDSQL-H LibraDB 已有账号,且该账号允许对应的主机访问。

内网连接

内网连接:通过内网地址连接 TDSQL-H LibraDB 分析引擎。使用云服务器直接连接云数据库的内网地址,这种连接方式使用内网高速网络,延迟低。
云服务器和数据库须是同一账号,且同一个 VPC 内(保障同一个地域),或同在基础网络内。
内网地址系统默认提供,可在 控制台 的实例列表或实例详情页查看。
说明:
对于不同的 VPC 下(包括同账号/不同账号,同地域/不同地域)的云服务器和数据库,内网连接方式请参见 云联网

从 Linux 云服务器内网连接

1. 登录到 Linux 云服务器,请参见 快速配置 Linux 云服务器
2. TDSQL-H LibraDB 分析引擎高度兼容 ClickHouse。可参考 ClickHouse 官网 安装文档,完成 ClickHouse 客户端安装。
3. 执行如下命令,登录到 LibraDB 分析引擎。
clickhouse-client --host=hostname --port 9000 -u username --ask-password
hostname:替换为目标 TDSQL-H LibraDB 的内网地址,在 控制台 实例分析引擎页的连接信息可查看。
username:替换为用户名。
--ask-password:通过交互输入密码登录。
4. 在提示 Password for user 后输入 username 账号对应的密码,即可成功登录到 TDSQL-H LibraDB。

外网连接

TDSQL-H LibraDB 暂不支持直接通过外网访问,可通过搭建代理等方式,间接通过外网访问。但请注意:
开启外网地址,可能会使您的数据库服务暴露在公网上,可能导致数据库被入侵或攻击。建议您使用内网连接数据库。
云数据库外网连接适用于开发或辅助管理数据库,不建议正式业务连接使用,因为可能存在不可控因素会导致外网连接不可用(例如 DDOS 攻击、突发大流量访问等)。
若仅是用于测试或学习,可通过如下方式快速搭建代理。
1. 准备与 TDSQL-H LibraDB 数据库在相同 VPC 下的云服务器一台。下文以操作系统 CentOS 为例。
2. 安装 nginx。
yum install nginx
3. 检查编译时是否有 with-stream 模块。有 with-stream 模块可以代理 tcp 协议。
nginx -V | grep with-stream
4. 修改 nignx 配置,为 stream 添加目录。
[root@VM-0-13-centos ~]# cd /etc/nginx/
[root@VM-0-13-centos ~]# cp nginx.conf nginx.conf_`date +%F`
[root@VM-0-13-centos ~]# vim nginx.conf
# 文件最后追加如下内容
# tcp/ip proxy
include /etc/nginx/tcp.d/*.conf;
说明:
stream 模块通过 tcp 层转发,而不是 HTTP 转发,即代理配置不能放到 /etc/nginx/conf.d/ 路径下。否则会收到报错:
nginx: [emerg] "server" directive is not allowed here
5. 添加 tcp 转发配置。
[root@VM-0-13-centos ~]# mkdir tcp.d
[root@VM-0-13-centos ~]# cd tcp.d
6. 在新建的 tcp.d 目录下创建 conf 文件新建一个 tcp转发配置。将云服务器的9000端口和8123端口转发到内网的10.0.0.10。
说明:
配置的具体参数,请以实际需求为准,此处仅做示例。
[root@VM-0-13-centos ~]# vim ch.conf

stream{
upstream ch9000{
hash $remote_addr consistent;
server 10.0.0.10:9000 max_fails=3 fail_timeout=10s;
}
server{
listen 9000;
proxy_connect_timeout 20s;
proxy_timeout 5m;
proxy_pass ch9000;
}


upstream ch8123{
hash $remote_addr consistent;
server 10.0.0.10:8123 max_fails=3 fail_timeout=10s;
}
server{
listen 8123;
proxy_connect_timeout 20s;
proxy_timeout 5m;
proxy_pass ch8123;
}
}
7. 测试配置正确性。
[root@VM-0-13-centos ~]# nginx -t -c /etc/nginx/nginx.conf
8. 启动 nginx 服务。
[root@VM-0-13-centos ~]# systemctl start nginx.service
至此,即完成了代理搭建。可通过该云服务器的端口访问内网的 TDSQL-H LibraDB 数据库分析引擎。