Instalé Postgresql y luego ejecuté un montón de aplicaciones de rieles en mi Mac OSX Mountain Lion local y creé bases de datos, etc. Hoy, después de un tiempo, cuando inicié pgAdminIII e intenté iniciar un servidor de base de datos, recibí este error:
Un google rápido mostró esta publicación. Más búsquedas apuntaron al hecho de que podría haber algún tipo de archivo postmaster.pid por ahí que podría ser la causa raíz de esto. Si elimino eso, todo irá bien.
Sin embargo, antes de eliminar cosas en mi computadora, quería asegurarme de que estoy depurando esto de una manera sistemática, lo que no daría lugar a más problemas.
En algún lugar leí que antes de eliminar ese archivo, necesito ejecutar este comando:
ps auxw | grep post
Si no obtengo resultados, está bien eliminar el archivo. De lo contrario, no. Bueno, obtuve este resultado de ese comando:
AM 476 0.0 0.0 2423356 184 s000 R+ 9:28pm 0:00.00 grep post
Así que ahora, por supuesto, estoy completamente confundido.
¿Entonces qué debo hacer?
Aquí está parte de mi registro de errores del servidor de Postgres:
FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 171) running in data directory "/usr/local/var/postgres"?
Postgresql todavía no se está ejecutando, sigue recibiendo el mismo error y nada ha cambiado. Soy demasiado cobarde para borrar cosas sin comprobar SO.
¿Podrían algunos de ustedes expertos guiar a un novato?
Gracias
postmaster.pid
. El servidor lo elimina al inicio si no es válido (obsoleto) y es importante para la protección de datos. Por favor, explique cómo instaló PostgreSQL en su ordenador para empezar - a través de EnterpriseDB instalador, homebrew, Postgres.app, qué? También mencione la versión de PostgreSQL. Finalmente, si agrega explícitamente "localhost" a las opciones de conexión en Pgadmin-III, ¿funciona? Si es así, te está mordiendo una decisión de empaque realmente mala que Apple tomó hace un tiempo ...postmaster.pid
, puede eliminarlo después de verificar que no haypostgres
procesos en ejecución, es vital que se asegure de que de hecho no hay procesos de PostgreSQL. Sinpostmaster.pid
embargo, si el servidor no elimina un archivo obsoleto, me parece un error.Respuestas:
Hoy tuve el mismo problema en Mac Sierra. En Mac Sierra puedes encontrar
postmaster.pid
dentro/Users/<user_name>/Library/Application Support/Postgres/var-9.6
. Eliminarpostmaster.pid
y se solucionará el problema.fuente
postmaster.pid
en esta ubicación y se solucionó el problema. ¡Gracias!postmaster.pid
archivo ya que estoy usando Postgres.app/Users/<user>/Library/Application\ Support/Postgres/var-10/postmaster.pid
cat postmaster.pid
en el directorio para echar un vistazo y hacer referencia a que no ve el PID ejecutándose en algo como el monitor de actividad. La interfaz de usuario de Postgres te alertará sobre esto, pero pensé que debería ponerlo aquí antes de que la gente se dé cuenta de cómo comprobarlo tú mismo. También debería ser suficiente buscarpostgres
en el monitor de actividad y eliminar todo lo que esté relacionado, o simplemente reiniciar su sistema y luego eliminar el archivo. No hacer esto podría resultar en una base de datos corrupta 🔥Esto puede suceder si la base de datos no se cerró correctamente. Para solucionarlo, simplemente elimine el
postmaster.pid
archivo. La ubicación difiere según su sistema operativo:Mac OS:
o usando Postgres.app:
Linux:
fuente
postmaster.pid
y ejecutarlopostgres -D /usr/local/var/postgres
, me advierte sobre la causa del error: "el sistema de base de datos no se cerró correctamente; recuperación automática en curso"Tengo la base de datos funcionando ahora.
Estos son los pasos que tomé:
cd /
ls -la
MackintoshHD/usr/local/var/postgres
ls -la
cp postmaster.pid ~/Desktop
que copió el archivo en mi escritorio.Me gusta hacer esto si estoy borrando archivos. Si algo sale mal, puedo devolverlorm -r postmaster.pid
Gracias a @Craig Ringer por su ayuda
fuente
Estoy usando Postgres.app, y lo siguiente funcionó para mí:
Ingresé los comandos en mi terminal a continuación, ubicando la carpeta Postgres de antemano y sin usar "justin".
$declare -x PGDATA="/Users/justin/Library/Application Support/Postgres/var-9.4" $pg_ctl restart -m immediate
Como Justin explica en su publicación, el resultado después de esto fue:
Después de ingresar el comando nuevamente:
Funcionó y recibí este mensaje:
Fuente
fuente