在排查新环境问题时,通常有助于隔离其中的各种组件,并尽可能简单地单独测试这些组件。
如需测试 Looker 服务器与数据库之间的连接,您可以在 Looker 服务器上使用 Telnet 创建简单的 TCP 连接。使用 Telnet 的优势在于非常简单。无需修改任何配置文件,也无需进行身份验证。Telnet 要么建立连接,要么不建立连接。
在知道数据库可以访问后,您就可以继续通过数据库的原生客户端 (Looker) 等应用进行测试。
安装 Telnet
某些主机可能已预安装 Telnet。如需进行测试,请在 Looker 服务器上运行以下命令:
telnet ?
您应会看到类似下图的界面:
usage: telnet [-l user] [-a] [-s src_addr] host-name [port]
如果屏幕上显示“未找到命令”则需要安装 Telnet。
在 Ubuntu 上:
sudo apt-get install telnet
在 Redhat/CentOS 上:
yum install telnet
默认端口
您需要知道您的数据库在哪个端口上运行。下表 列出了一些平台的默认端口 配置为在其他端口上运行请咨询您的数据库管理员。
平台 | 端口 |
---|---|
Amazon Redshift | 5439 |
GreenPlum | 5432 |
Microsoft SQL Server (MSSQL) | 1433 |
MySQL | 3306 |
Oracle | 1521 |
PostgreSQL | 5432 |
Vertica | 5433 |
通过 Telnet 连接到您的数据库
如需测试与数据库的连接,请在 Looker 服务器上运行 telnet hostname port
。例如,如果您在默认端口上运行 MySQL,并且数据库名称为 mydb,则命令为 telnet mydb 3306
。
如果连接正常,您将看到类似如下所示的内容:
Trying 10.10.10.10...
Connected to mydb.
Escape character is '^]'.
如果连接不正常,您会看到类似于以下某种内容:
Trying 10.10.10.10...
telnet: Unable to connect to remote host: Connection timed out
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
telnet: could not resolve mydb/telnet: Name or service not known
问题排查
如果 Telnet 检查不成功,请考虑以下事项:
- 主机名是否正确?
- 数据库和 Looker 服务器是否已配置为允许在它们之间传输网络流量?检查两个主机上是否安装了任何防火墙软件。
- Looker 服务器和数据库主机之间的所有网络是否已配置为允许网络流量?检查防火墙和网络访问控制列表 (ACL)。
- Looker 服务器与数据库主机之间的所有网络是否已正确配置,以便在主机之间路由流量?
- 数据库服务器是否正在运行?它是否在监听正确的端口?它是否配置为允许来自 Looker 服务器的连接?
后续步骤
如果您能够从 Looker 服务器 Telnet 到数据库服务器的端口,则可以排除基本连接问题。下一步是创建 Looker 数据库连接。