23

I was following the ruby on rails tutorial to run with postgres but when I try the "rake db:create" I get the following error:

could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

I have found this question issuing some similar problem but I couldnt make it work anyway.

Repairing Postgresql after upgrading to OSX 10.7 Lion

I have installed homebrew after reading this question and the path is fine, brew doctor shows me no errors on path.

Community
  • 1
  • 1
Andre Cytryn
  • 2,506
  • 4
  • 28
  • 43
  • 2
    _Is_ PostgreSQL listening on `/var/pgsql_socket/.s.PGSQL.5432`? What does `ls -l /var/pgsql_socket/.s.PGSQL.5432` show? What does `fuser /var/pgsql_socket/.s.PGSQL.5432` show? – sarnold May 29 '12 at 00:55
  • Fisrt shows: ls: /var/pgsql_socket/.s.PGSQL.5432: Permission denied Second shows: /usr/bin/fuser: '/var/pgsql_socket/.s.PGSQL.5432' does not exist – Andre Cytryn May 29 '12 at 01:15
  • That `ls` output is funny; re-run the command with `sudo`... – sarnold May 29 '12 at 01:20
  • Also `ls -ld /var/pgsql_socket` . Sounds like the socket dir perms may be odd. – Craig Ringer May 29 '12 at 02:31
  • 1
    running with sudo: `ls: /var/pgsql_socket/.s.PGSQL.5432: No such file or directory` – Andre Cytryn May 29 '12 at 03:21

6 Answers6

57

Instead of troubleshooting your socket file permissions, you could try a TCP connection. Add host: localhost to your config/database.yml. Of course, this will only work if postgres is listening for TCP traffic. Postgres listens on port 5432 by default, so netstat -an | grep 5432 will tell you if it is listening.

References

Jared Beck
  • 16,796
  • 9
  • 72
  • 97
  • 2
    If `netstat -an | grep 5432` produces no output, then postgres is not listening on the normal port, or is not listening on any port. – Jared Beck May 29 '12 at 23:40
  • Check the server settings related to connections. Read chapter 18.3. "Connections and Authentication" http://www.postgresql.org/docs/9.1/interactive/runtime-config-connection.html – Jared Beck Jun 01 '12 at 05:02
  • 3
    adding host: localhost fixed the problem for me. Many thanks. – Robert Reiz Aug 16 '12 at 13:59
1

Oh, may be you are open postgre in another application, like pgadmin http://www.pgadmin.org/ Try to close any application that use postgre SQL and run your command again.

duykhoa
  • 2,227
  • 1
  • 25
  • 43
0

I ran into the same problem today and found this blog post below which helped me:

http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/

It moves your OS X default postgres binaries into an archive folder and symlinks the homebrew versions in place of them.

TL;DR curl http://nextmarvel.net/blog/downloads/fixBrewLionPostgres.sh | sh

Patrik Affentranger
  • 13,245
  • 2
  • 22
  • 25
0

I had the same issue. After unsuccessfully trying all the suggestions posted above, I finally quit out of terminal and restarted it.

This worked.

Jillian Hoenig
  • 137
  • 1
  • 6
  • 28
0

Just check if your config/database.yml has------host: localhost and port: (check for yourself by netstat -an | grep 5432 or 5433)

Zender
  • 1
-2

I also ran into this problem because I had both the mysql and pg gems active in my Gemfile.

I commented out the mysql gem:

# mysql 

Then ran:

bundle install 

and then:

rake db:migrate 

and it worked like a charm.

Eric Norcross
  • 4,177
  • 4
  • 28
  • 53