Postgres cannot connect to server on Unix domain s

2020-03-30 07:16发布

问题:

Using Postgres 9.2.2, I keep getting this error when I try to start up rails server or run psql

could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

This command, when run:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

says server starting, but when I go to check processes, no postgres process is running

My paths are correct

$ which psql
/usr/local/bin/psql
$ which pg_ctl
/usr/local/bin/pg_ctl

If I run this command:

initdb /usr/local/var/postgres -E utf8

It will connect to the socket.... but it also requires me to remove my databases, which is pretty frustrating. This seems happens every time I restart.

Using

  • Postgres 9.2.2
  • Brew
  • OSX Mountain Lion

I found similar threads on stack overflow but none of the solutions seemed to work.

回答1:

Screw it. I just installed Postgres.app by Heroku. No more messy issues.



回答2:

I saw this issue arise again once more with someone who actually had Postgres.app installed. Though, it's unclear why his threw this error because I've never seen it before with Postgres.app.

The solution was changing the database.yml file from:

development: &default
  adapter: postgresql
  database: myapp_development
  encoding: utf8
  min_messages: warning
  pool: 5
  timeout: 5000

test:
  <<: *default
  database: myapp_test

To:

development: &default
  adapter: postgresql
  database: myapp_development
  encoding: utf8
  min_messages: warning
  pool: 5
  timeout: 5000
  host: localhost

test:
  <<: *default
  database: myapp_test

Only difference is the "host" line