wrote by Rafael Marangoni, from Consultoria Linux team.

By default, on some distros, PostgreSQL will only accept connections from localhost. When you have only access from localhost (from localhost Apache, by example) everything is ok, but when you need that postgresql accepts connections for other hosts, you need to make some configs.

First of all, edit the postgresql.conf file (on CentOS the default location is /var/lib/pgsql/data/postgresql.conf).

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

Search the following line:

listen_addresses = 'localhost'

Change it to:

listen_addresses = '*'

Secondly, you need to change the permissions inside pg_hba.conf file (on CentOS, the default location is /var/lib/pgsql/data/pg_hba.conf)

vi /var/lib/pgsql/data/pg_hba.conf

Include the following line (at the end of the file):

host    username    all         192.168.0.10/32     md5

Where:
username: it's the name of the postgres user

all: the database name (here we enabled all of them)
192.168.0.10/32: is the IP address/subnet to accept connections
md5: is the method of authentication (md5 requests password)

Configure PostgreSQL to accept connections from network
Tagged on:

2 thoughts on “Configure PostgreSQL to accept connections from network

  • Permalink

    Very useful, thx!
    I guess can be used to restrict some users to access through the network although they can access locally?
    Same idea with the IP address where 0.0.0.0/0 seems to work as a ‘wildcard’?

    Reply
    • Permalink

      Just a quick addition to this, it seems it if first database then username (instead of username then database as written in the post)

      Full line should follow:
      TYPE DATABASE USER ADDRESS METHOD
      host demodb johndoe 0.0.0.0/0 md5

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*