I have some, albeit limited, experience with MySQL and MongoDB (both running fine on server) but having trouble with Postgres and find the documentation lacking for newbies, like myself.

Postgres is installed and running. But I cannot connect from a client.

pg_hba.conf looks like this (I added the last line):

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all               trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

## Added by me
host    all             all              trust

Now if I go to the client and try to psql -h server.domain.com I get an error:

psql: could not connect to server: Connection refused
    Is the server running on host "server.domain.com" ( and accepting
    TCP/IP connections on port 5432?

ssh authorized_keys are setup for this client <-> server connection. There is also Kerberos as an option. Seems I might have too many options here? Not quite sure how to troubleshoot this? I can verify Postgres IS running.

meltemi$ sudo lsof -i -P | grep -i ':5432'

leads me to believe maybe it's not listening?



4 Answers 4


The next thing to check is probably that you have a line in your postgresql.conf that looks like this:

listen_addresses = '*'

You will have to restart after changing that line. Otherwise your pg_hba.conf looks fine.

Good luck! Getting started is a big hurdle, but once you get through it, you will probably find that compared to MySQL things are a lot simpler and more consistent.

  • This is a common gotcha to initial setups. It still gets me. +1 !!! Commented Mar 1, 2012 at 19:11

It could be your firewall? Have you added a rule in iptables for port 5432?

I used this guide which was quite helpful. Scroll down and you will find it. http://www.cyberciti.biz/tips/postgres-allow-remote-access-tcp-connection.html

  • no firewall between this client & the server (all on a private & protected LAN).
    – Meltemi
    Commented Mar 1, 2012 at 6:40

Does ps -ef | grep postgres find postgres processes running?

Along with @Daniel Lyons' suggestion to look at postgresql.conf for the IP address that it's listening on, remember to uncomment the port.

Have you tried psql as a database user on the database server to verify that you can connect to the postgres service?


It's probably

listen_addresses = '*'

as @Daniel already posted. One other explanation could be that you configured a different port than the standard 5432. That's usually the line right below in postgresql.conf (but can be anywhere in the file). For instance:

port = 5433

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.