我已经使用 Postgres 组装了一个 Amazon RDS。我可以通过我的 Mac 和我的 PC 上的 pgAdminIII 连接到数据库,没有任何问题。但是一些尝试连接到我的 RDS 站点的人收到了传统的超时消息。
有没有办法调试可能导致连接失败的 pgAdminIII 客户端 pc/mac 问题?
到目前为止,stackoverflow Q/A 似乎专门用于从 pgAdmin 到运行 PostgreSQL 的 Amazon RDS 的首次连接。与那些问题不同,我的一些用户根本无法连接到已知的工作数据库。
我正在寻找指向防火墙或其他客户端 PC/Mac 设置问题的 ping、traceroute 类型测试????
最佳答案
我已将问题简化为“为什么某些 pc/mac 客户端被阻止使用 Amazon RDS 端口号:5432?
在我的家庭网络上,我可以使用端口 5432,但他们所在位置的其他人(具有他们的软件和硬件安全性)不能。
第一步
测试有效的实例名称和端口访问(适用于 mac 或 windows)
在终端窗口(对于 mac)或 CMD 窗口(对于 PC)中键入此 telent 表达式:
telnet xtrf3.[您的主机详细信息].amazonaws.com 5432
telnet 命令的 xtrf3.. 部分。是我们在Amazon上运行的PostgreSQL实例的链接,5432是端口号
如果 telent 测试由于端口号问题而失败,您将等待很长时间(可能 2 分钟)“connecting to xtrf…”,然后是:“Could not open connection to the host, on port 5432: Connect failed ”
如果 telnet 测试由于 Amazon RDS 实例名称无效而失败,您将很快收到以下错误:“Connecting To xtrf3.[your host details].amazonaws.com...Could not open connection to the host, on端口 5432:连接失败”
如果 telnet 测试成功,您将很快得到一个空白屏幕。在这种情况下,您的 pc 或 mac 可以使用所需的端口号找到 PostgreSQL 实例
第二步
假设第 1 步显示 postgreSQL 实例在 Amazon RDS 上处于事件状态,但连接超时:我发现入站流量的 Amazon EC-2 安全设置不正确。
在我的例子中,我将入站 TCP 源地址设置为我的家庭 Internet 提供商 IP 地址。所以我可以在家里连接,但办公室或 wifi 地点的任何人都无法连接。将源地址更改为“全部”或 0.0.0.0/0 解决了这个问题。安全性较弱,但该服务仍受密码保护,对于这个项目来说已经足够好了。
可以为需要访问的每个位置创建单独的 EC-2 入站条目,并在明确 EC-2 安全组设置是问题所在后,消除对所有位置的通用访问作为进一步的改进。
关于postgresql - 一些客户端无法使用 pgadmin 连接到 postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28952227/