2012-06-13 10 views
6

Recientemente tuve que volver a instalar homebrew y postgres y ahora postgres no funciona con rieles.Postgres sh: /usr/local/var/postgres/server.log: Ningún archivo o directorio

En primer lugar cuando se trata de ejecutar carriles s, me sale esto:

/Users/lee/.rvm/gems/[email protected]/gems/activerecord-3.2.6/lib/active_record/connection_adapters/postgresql_adapter.rb:1206:in `initialize': could not connect to server: Connection refused (PG::Error) 

así que trato de comenzar postgres y me sale esto:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start 
server starting 
sh: /usr/local/var/postgres/server.log: No such file or directory 

Parece que postgres está funcionando debido a esto:

ps aux | grep postgreslee    1099 0.3 0.0 2425480 188 s000 R+ 5:48PM 0:00.01 grep postgres 

Estoy totalmente perdido aquí por qué no puedo hacerlo funcionar.

+2

Probablemente haya instalado el nuevo postgres en un directorio diferente. Primero intente omitir el -l flag + logfilename, para ver si comienza. Por cierto: también puedes especificar el archivo de registro en postgres.conf. ¿Qué contiene el directorio "/ usr/local/var/postgres"? existe ? quien es el propietario ? – wildplasser

Respuesta

5

Primero, ps | grep está sacando tu grep del árbol de procesos. Postgres no se está ejecutando. Este tipo de cosas sucede cuando el directorio para poner el log no existe. Probablemente lo esté apuntando a un directorio inexistente.

Esto podría suceder si aún no tiene un directorio de datos.

recomendaciones:

  1. empezar por asegurarse de que existe el directorio de datos. busque pg_hba.conf y vea si está en cualquier parte de su sistema. Si es así, existe una buena posibilidad de que esté en su directorio de datos (si está en etc., entonces busque base/1/PG_VERSION. Estará en su directorio de datos un nivel arriba de la base).
  2. si ya existe, cambie su postgresql.conf para establecer la configuración de registro de forma adecuada y descarte la opción -l.
  3. Si no existe un directorio de datos, use el comando initdb para crear uno.
+6

Si realiza una nueva instalación en OSX (a través de homebrew), primero debe crear una base de datos 'initdb/usr/local/var/postgres -E utf8' – oschrenk

Cuestiones relacionadas