Shell Person Help me keep the shell people alive.

30Sep/120

New Location for org.postgresql.postgres.plist in Server.app 2.1.1

In Server.app 2.1.1 for OSX Mountain Lion, the PostgreSQL configuration file has been moved from

/System/Library/LaunchDaemons/org.postgresql.postgres.plist

to its new location at

/Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist

You no longer need administrative privileges to edit it.

18Sep/120

Connect to OSX Server.app postgresql on Mountain Lion

Here are a few notes to remind myself how to connect to the default postgres instance used by OSX Server.app on Mountain Lion.

  1. Enable "Websites" in Server.app.
  2. Check if postgres is running
  3. sudo serveradmin fullstatus postgres
    
  4. If it's not, turn it on
  5. sudo serveradmin start postgres
    
  6. In order to connect with pgAdmin (and maybe through the terminal too), edit the file
    /System/Library/LaunchDaemons/org.postgresql.postgres.plist

    to replace

    <string>listen_addresses=</string>

    with

    <string>listen_addresses=127.0.0.1</string>
  7. UPDATE: The config file moved in the Server.app 2.1.1 update. It's now at:

    /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist
    
  8. Then restart postgres
  9. sudo serveradmin stop postgres
    sudo serveradmin start postgres
    
  10. Now, connecting with psql in terminal still causes this error (use template1 as the database name if you don't already have a database set up):
  11. server:~ shellperson$ psql template1
    psql: 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"?
    
  12. My preference to work around this is to create a user named "root" in the database, so I can just login with sudo. In order to do this, first login as the default user (_postgres). Use your own password.
  13. server:~ shellperson$ sudo -u _postgres psql template1
    Password:
    psql (9.1.4)
    Type "help" for help.
    
    template1=# create role root login;
    CREATE ROLE
    template1=# \q
    

    Once the user is created, you can login with "sudo psql databaseName".

    server:~ shellperson$ sudo psql template1
    

Articles referenced:
http://www.mactasia.co.uk/revisited-using-postgresql-in-lion-server
http://www.mactasia.co.uk/video-how-to-configure-postgres-in-lion-server-10-7-4
http://www.naveoss.com/site/282/tutorials/appletutorials/accessing-osx-lion-server-postgresql