I installed Postgresql 9.4.0 installed on my Mac (10.10.1/Yosemite) using homebrew. It does not work.
I have created the softlink to /usr/local/opt/postgresql/homebrew.mxcl.postgresql.plist in ~/Library/LaunchAgents.
If I try to manually load postgres I get the message that the "Operation is in progress"
> launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
/usr/local/Cellar/postgresql/9.4.0/homebrew.mxcl.postgresql.plist: Operation already in progress
However postgres does not appear to be running.
> ps auxw | grep post
billmcn 670 0.0 0.0 2424272 452 s000 R+ 10:12PM 0:00.01 grep post
and I cannot connect with the command line client.
> psql
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"?
To my knowledge I have tried all the fixes suggested on other Stackoverflow threads discussing this problem. Specifically:
- I have uninstalled and reinstalled postgres and the accompanying Ruby gem. There is no postgres 8.0 version on my machine.
- I have verified that the psql client program is the 9.4.0 version installed by Homebrew and not a Mac system binary.
- I have verified that the /usr/local/var/postgres/postmaster.pid does not exist.
- I have rebooted the machine.
I did have Homebrew postgres working on this machine earlier. I think what broke it is upgrading from version 8 to version 9 but I'm not sure.
I don't have any databases I need to preserve. I'm willing to start clean with postgres; I just need to get it to work now. Any ideas?
The issue appears to have been permissions on the /usr/local/var/postgres directory. Here is what my var directory looked like when things weren't working.
ll /usr/local/var/
drwxr-xr-x 3 billmcn admin 102 Dec 20 12:44 cache
drwxr--r-- 2 root admin 68 Dec 29 21:37 postgres
(whoami = "billmcn")
I deleted /usr/local/var/postgres, uninstalled and reinstalled postgres, and now it looks like this.
ll /usr/local/var/
drwxr-xr-x 3 billmcn admin 102 Dec 20 12:44 cache
drwx------ 23 billmcn admin 782 Dec 30 10:51 postgres
Not sure how it got into this state because I don't remember futzing with the permissions on this directory, but no matter. It works now.
I had this same problem. The primary issue here is that the initdb step of installation will create the directory with root ownership instead of as the user on a Mac. To solve this issue:
Create the data directory before running
initdb
and set permissions of 0700Then run
initdb
and it will respect the permissions of the data directory.For grins and giggles, create a test db named after your user:
Login to test:
After trying to install postgresql with Homebrew, I got this:
So I tried:
And got this error:
It seemed to be a write permission matter, so I did:
It did the trick because, then I was able to do (without error):
I had the same problem installing postgres using homebrew on a freshly installed Yosemite.
First off my brew config looks like this:
First thing i noticed was that I had no write permission to
/usr/local/var/postgres
. This was easily changed issuingsudo chown -R `whoami` /usr/local/var/postgres
then I reinstalled postgresql and didcat /usr/local/var/postgres/server.log
which revealed:
postgres cannot access the server configuration file "/usr/local/var/postgres/postgresql.conf": No such file or directory
So I removed the directory
/usr/local/var/postgres
and issued the command to initialize the database.initdb -D /usr/local/var/postgres/
This seemed to have done the trick and postgres is running fine.
Please note that their is a thread on Homebrew's github dealing with this issue: https://github.com/Homebrew/homebrew/issues/35240
I have had a similar issue. James answer helped me solve it. But I then ran into the issue jbk is mentioning (after having deleted /usr/local/var/postgres, it kept on being recreated).
The issue is that if you have created the symlink:
and launched the process:
you should first unload it:
before running James's commands.
In addition, if, like me, you have an admin user managing homebrew and a regular user who will be using pgsl for development purpose, James command should be run as super user:
and ownership over the postgres directory should be given to your dev user:
The following command, run as the dev user, should then properly populate the directory:
Running:
should show you the tables and user permissions in postgre after such manipulations.
Hope this helps.
Check @leo_chaz_maltrait for fixing errors the error
Could not symlink share/man/man3/SPI_connect.3
Another error that might show up is:Error: Could not symlink lib/pkgconfig/libecpg.pc