远程 postgres 连接

远程 postgres 连接

好吧,我似乎已经尝试了所有我能找到的方法 - 虽然不是很多 - 但无法理解为什么我无法与我的数据库建立远程连接。

以下是我所拥有的:

#postgresql.conf
listen_addresses = '12.34.56.78,localhost' # included my local ip
port = 5432                                # the port I'm trying to connect with
tcpip_socket = true                        

#pg_hba.conf
host    all         mydbuser       12.34.56.78/32         md5

I receive: connection to database 'name' failed, could not connect to server: Connection refused.
 Is the server running on host "domain.com" and accepting
 TCP/IP connections on port 5432?

netstat -ant | grep 5432 #returns nothing 

netstat -nltp | grep 5432:不返回任何内容

解决方案

我觉得真正让我无法理解这一点的,是一篇关于这个主题的博客文章写得不好。另一方面,一个很棒的教程切片主机帮我理清了一切,如果有人遇到同样的问题,我建议他们通读一下。Slicehost 的教程质量和维护确实值得称赞,不过我想帮助人们使用他们的服务是一桩好生意。

感谢所有回答的人。

答案1

您可以在数据库服务器上运行以下命令并发布输出:

  • ps axf | grep postgres
  • 监听端口netstat -nltp | grep 5432

要绕过防火墙,请尝试使用端口 80 或 8080,而不是 5432。

您是从 12.34.56.78/32 进行连接的(这是您的 pg_hba.conf 中允许的范围)吗?

您能 ping 通 12.34.56.78 吗?

从空netstat输出来看,您的 postgres 进程似乎没有监听端口!

当您重新启动数据库时,/var/log/postgresql/ 中是否会出现一些有趣的内容。

答案2

你检查过防火墙吗?你可能设置了一些规则来阻止访问该端口

答案3

主机所有 mydbuser 12.34.56.78/32 md5

pg_hba.conf 中的此行意味着只有来自主机 12.34.56.78 的用户 mydbuser 才能连接。

因此,如果这是 PG 服务器,则需要为主机或子网添加另一行(即,如果您希望 12.34.45.01-254 中的任何一个进行连接,则需要输入 12.34.56.00/24)

相关内容