postgresql - 一些客户端无法使用 pgadmin 连接到 postgresql

标签 postgresql amazon-ec2 amazon-rds pgadmin

我已经使用 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 安全组设置是问题所在后,消除对所有位置的通用访问作为进一步的改进。

enter image description here

关于postgresql - 一些客户端无法使用 pgadmin 连接到 postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28952227/

相关文章:

mysql - phpMyAdmin 和 Amazon RDS 的问题

database - 如何将视频存储在 PostgreSQL 数据库中?

sql - 如何使用 SQL 从表中创建矩阵类型结果

amazon-web-services - EC2 代理主机名上的 Mesos/Marathon 无法访问

amazon-ec2 - 将EC2实例的公共(public)IP地址更改为弹性IP地址

java - 如何使用 Java 开发 AWS S3 上的静态网页与 AWS Lambda 之间的连接

amazon-web-services - 授予 AWS RDS 对 KMS CMK 访问权限的最佳实践

ruby-on-rails - 为什么在 postgres 上的 rails 迁移过程中出现 ExclusiveLock 错误

javascript - 将对象数组转换为与 nodejs/pg/unnest 兼容的数组

java - 在AWS EC2上的springboot中从.env文件访问环境变量