Cannot connect to postgres from remote host

前端 未结 6 1275
刺人心
刺人心 2020-12-13 12:50

I have a database server (192.168.1.50) running postgres. I have created a database named \"testdb\" and a user \"testuser\" with password \"testuserpw\".
Locally, I can

相关标签:
6条回答
  • 2020-12-13 13:22

    On Ubuntu, I noticed that remote access at some point stopped working (currently using 9.1.9). The reason is, that postgres is no longer started with the -i switch [1] so no matter what you configure for listen_addresses, it will be ignored.

    Fortunately, adding the following line to /etc/environment solves the problem after logging out and in again (or reboot):

    PGOPTIONS="-i"
    

    See [2] for more options. Note, that adding this to /etc/postgresql/9.1/main/environment did NOT work for me.

    Now, when doing nmap ip-of-my-remote-server I finally get this again:

    5432/tcp open  postgresql
    

    Yay!

    [1] http://www.postgresql.org/docs/9.1/static/runtime-config-short.html

    [2] http://www.postgresql.org/docs/9.1/static/libpq-envars.html

    0 讨论(0)
  • 2020-12-13 13:40

    Check the setting of listen_addresses in your postgresql.conf file. Many distributions make it default to 127.0.0.1, i.e. listen only to connections coming in from localhost. It should be set to '*' to listen for connections on all interfaces.

    If you are still having trouble, use lsof to see what network sockets the postgres process is listening on.

    0 讨论(0)
  • 2020-12-13 13:41

    The listen_address configvar in postgresql.conf is not the only way to get postgres to listen on the non-local IP-address (or addresses).

    Use option "-o -h *" if you start postgres from pg_ctl, otherwise do add "-h" "*" to the postgres command line, like e.g.

    /usr/local/pgsql/bin/postgres -D /pg/data "-h" "*"

    Of course /pg/data must be changed to your current datapath.

    This is especially useful when experimenting.

    0 讨论(0)
  • 2020-12-13 13:45

    Is the firewall letting the connections through? Or, check if pg_hba.conf allows connecting from addresses other than localhost.

    0 讨论(0)
  • 2020-12-13 13:45

    Connection refused (0x0000274D/10061) i fixed here with:

    Open the terminal and type:

    VIM /var/lib/pgsql/data/postgresql.conf
    

    Edit the "listen_adresses", it should be set to '*'

    After this, rest it on terminal:

    /scripts/restartsrv_postgres
    
    0 讨论(0)
  • 2020-12-13 13:48

    I came across the same problem as yours, and my source of problem is the firewall settings. If you're using Ubuntu, print your firewall status: sudo ufw status verbose

    It may looks like this:

    Logging: on (low)
    Default: deny (incoming), allow (outgoing), disabled (routed)
    New profiles: skip
    ...
    

    The default rule of incoming connection is "deny", so you need to specify the "allow"ed port.

    type: sudo ufw allow 5432/tcp

    reference: https://www.vultr.com/docs/how-to-configure-ufw-firewall-on-ubuntu-14-04

    0 讨论(0)
提交回复
热议问题