Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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 I get an error:

psql: could not connect to server: Connection refused
    Is the server running on host "" ( 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?


share|improve this question

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.

share|improve this answer
This is a common gotcha to initial setups. It still gets me. +1 !!! – RolandoMySQLDBA Mar 1 '12 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.

share|improve this answer
no firewall between this client & the server (all on a private & protected LAN). – Meltemi Mar 1 '12 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?

share|improve this answer

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
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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