2012-08-16 12 views
6

Estoy tratando de obtener la configuración de postgres localmente para una aplicación de rieles en mi mac (10.7 Lion).Intentando instalar postgres en OSX

Instalé postgresapp y lo lancé, ahora tengo un elefante en mi barra de estado diciéndome que postgres se está ejecutando.

puedo llegar a ella por:

psql -h localhost 

Pero cuando sólo tiene que ejecutar psql consigo este error:

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"?

pongo esto:

PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH" 

En ~/.bashrc y abrió una nueva terminal. Pero no hay dados.

Cuando corro which psql me sale /usr/bin/psql

No es muy seguro de qué hacer .. Estoy todavía bastante nuevo en los sistemas UNIX. ¿Debería enlazar simbólicamente /usr/bin/psql al /Applications/Postgres.app/Contents/MacOS/bin/psql?

+1

¿De dónde viene el otro 'psql' proviene de, el que está en'/usr/bin/'? ¿Preinstalado con Mac OS X? ¿De un paquete PostgreSQL diferente? –

+0

@CraigRinger Supongo que fue preinstalado. –

+0

¿Hay un ejecutable psql en '/ Applications/Postgres.app/Contents/MacOS/bin'? Debe estar allí. ¿Qué sucede si intentas ejecutar ese (especificando la ruta)? – dezso

Respuesta

4

Este error es bastante específico y te dice lo que está mal, pero si eres nuevo en Unix, entonces es menos obvio.

me dio una respuesta similar a la aquí:

Can not connect to local PostgreSQL

El problema

Usted no tiene acceso a la ("socket") presenta /var/pgsql_socket/.s.PGSQL.5432

Para solucionar:

Verifique que al menos tenga acceso al directorio. En la línea de comandos use:

ls -l /var/pgsql_socket/.s.PGSQL.5432 

Esto dará como resultado "permiso denegado" si no es así. Es probable que ya tenga acceso a esto y que sea solo el archivo de socket al que no tiene permiso.

El archivo de socket en sí es creado por postgresql cuando se inicia.

Localiza el archivo de configuración principal de postgres (postgresql.conf). Eso en sí mismo podría ser difícil, soy un usuario de Linux no OSX. Es posible que deba pasar algún tiempo en google. Este enlace es bastante antiguo, pero puede ponerlo en el camino correcto si tiene problemas. http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html

Una vez que hayas encontrado, encontrar las líneas en postgresql.conf que deberían decir algo como:

unix_socket_directory = '/var/pgsql_socket' # dont worry if yours is different 
#unix_socket_group = ''      # default is fine here 
unix_socket_permissions = 0777     # check this one 
+4

El archivo de configuración de Mac OSX está en/Users/$ USER/Library/Application Support/Postgres/var – SANDeveloper

11

tuve un problema similar en mi nuevo MacBook Pro con Mountain Lion.He descargado el PostgresApp y cuando me dispararon hasta los carriles recibí el siguiente error:

`initialize': could not connect to server: No such file or directory (PG::Error) 
Is the server running locally and accepting 
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"? 

Para solucionar este tuviera que definir explícitamente el host y el puerto en mi archivo database.yml así:

development: 
    adapter: postgresql 
    encoding: unicode 
    database: my_app_development 
    pool: 5 
    username: tony 
    password: stark  
    host: localhost 
    port: 5432 
Cuestiones relacionadas