postgresql server doesn't listen

北战南征 提交于 2019-12-11 03:47:25

问题


I just recently install PostgreSQL on our server via SSH. The installation went successful, until the time I tried to connect to it using pgAdmin on my Windows machine.I received this kind of error:

could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "xxx.xxx.xxx.xxx" and accepting TCP/IP connections on port 5432?

xxx.xxx.xxx.xxx = my server's public IP.

The docs suggest this can be fixed by setting the value of listen_addresses = '*' in the /etc/postgresql/9.1/main/postgresql.conf. I did that but still it won't let me.

additional error came up

FATAL: no pg_hba.conf entry for host "xxx.xx.xxx.xxx", user "postgres", database "postgres", SSL on FATAL: no pg_hba.conf entry for host "xxx.xx.xxx.xxx", user "postgres", database "postgres", SSL off

xxx.xx.xxx.xxx = my IP address.

What seems to be I'm missing?


回答1:


Things that could block a postgres connection:

  1. misconfigured listen_address in postgresql.conf
  2. selinux (?)
  3. iptables
  4. pg_hba.conf (although this should cause a different error, not server doesn't listen)

Can you connect to the server locally, if you ssh in and run psql?

On our internal dev servers, I just turn off selinux and iptables. This is a bad idea from a security standpoint, but it might serve as a temporary step to help you narrow down where the problem is.




回答2:


You might need to change more than one configuration file. In your case, you probably need to edit pg_hba.conf, too. Search that file for "non-local connections".

I like to keep configuration files under version control. It's easier to recover from mistakes that way.

You probably need to restart the PostgreSQL server after making those changes.




回答3:


  • After changing listen_addresses settings on the server, make sure to restart the PostgreSQL server (send SIGHUP to the postmaster process, with kill -HUP, etc).
  • Make sure that postgresql.conf port is set to 5432
  • Make sure that if a firewall is running on the server, that port 5432 is open for connections coming from the window's (client) machine you are using
  • Check pg_hba.conf to make sure that the subnet of your client machine is given access
  • Try using psql locally


来源:https://stackoverflow.com/questions/12286886/postgresql-server-doesnt-listen

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!