macos - instalar - postgresql server
psql: no se pudo conectar al servidor: no existe tal archivo o directorio(Mac OS X) (15)
ADVERTENCIA: Si elimina postmaster.pid sin asegurarse de que realmente no hay procesos postgres
que lo ejecuten, podría dañar permanentemente su base de datos . (PostgreSQL debería eliminarlo automáticamente si el administrador de correos ha salido).
SOLUCIÓN: Esto solucionó el problema: borré este archivo y luego todo funcionó.
/usr/local/var/postgres/postmaster.pid
-
y aquí es cómo descubrí por qué esto necesitaba ser eliminado.
Usé el siguiente comando para ver si había algún proceso de PG ejecutándose. para mí no había ninguno, ni siquiera podía iniciar el servidor de PG:
ps auxw | grep post
Busqué el archivo .s.PGSQL.5432 que estaba en el mensaje de error anterior. utilicé el siguiente comando:
sudo find / -name .s.PGSQL.5432 -ls
esto no mostró nada después de buscar en toda mi computadora para que el archivo no existiera, pero obviamente
psql
"lo quería" o "pensó que estaba allí".Eché un vistazo a los registros de mi servidor y vi el siguiente error:
cat /usr/local/var/postgres/server.log
al final del registro del servidor veo el siguiente error:
FATAL: pre-existing shared memory block (key 5432001, ID 65538) is still in use HINT: If you''re sure there are no old server processes still running, remove the shared memory block or just delete the file "postmaster.pid".
Siguiendo el consejo del mensaje de error, eliminé el archivo postmaster.pid en el mismo directorio que server.log. Esto resolvió el problema y pude reiniciar.
Por lo tanto, parece que mi macbook freezing y duro reinicio causó que Postgres pensara que sus procesos seguían ejecutándose incluso después de reiniciar. Eliminar este archivo resuelto. Espero que esto ayude a otros! Muchas personas tienen problemas similares, pero la mayoría de las respuestas tenían que ver con los permisos de archivos, mientras que en mi caso las cosas eran diferentes.
Al reiniciar mi Mac, recibí el temido error de Postgres:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
La razón por la que esto sucedió es porque mi macbook se congeló por completo debido a un problema no relacionado y tuve que hacer un reinicio con el botón de encendido. Después de reiniciar, no pude iniciar Postgres debido a este error.
Acabo de recibir el mismo problema que puse mi máquina ( ubuntu
) para actualizar y obtuve el siguiente error:
no se pudo conectar al servidor: no existe dicho archivo o directorio ¿El servidor se está ejecutando localmente y acepta conexiones en el socket de dominio Unix "/var/run/postgresql/.s.PGSQL.5432"?
Después de completar el proceso de actualización cuando reinicio el error de mi sistema se ha ido. Y funciona como el encanto de antes ... Supongo que esto sucedió cuando la página se estaba actualizando y comenzó otro proceso.
Este problema tiene muchas fuentes, y por lo tanto muchas respuestas. He experimentado cada uno de ellos.
1) Si tiene un bloqueo de algún tipo, es probable que sea necesario eliminar el archivo /usr/local/var/postgres/postmaster.pid ya que es posible que Postgres no lo haya manejado correctamente. Pero asegúrese de que no se esté ejecutando ningún proceso.
2) Craig Ringer ha señalado en otras publicaciones que la agrupación de postgreSQL de Apple lleva a problemas de instalación de gemas de pg. Establecer la variable de entorno PATH es una solución.
3) Otra solución, es desinstalar y reinstalar la gema. Una actualización de cerveza también puede ser necesaria.
Si tropieza con esta publicación, si puede identificar una de las fuentes, ahorrará tiempo ...
Esto me sucedió después de que mi Mac (High Sierra) se congeló y tuve que reiniciarla manualmente (presione y mantenga presionado el botón de encendido). Todo lo que tuve que hacer para arreglarlo fue hacer un reinicio limpio.
He tenido que buscar esta publicación varias veces para resolver este problema. Hay otra solución, que también se aplica a problemas similares con otros programas en ejecución.
Acabo de descubrir que puedes usar los siguientes dos comandos.
$ top
Esto mostrará todas las acciones actualmente en ejecución con sus números pid. Cuando encuentre postgres y el pid asociado
$ kill pid_number
Hola Mundo :)
La mejor pero extraña forma para mí fue hacer las siguientes cosas.
1) Descarga postgres93.app u otra versión. Agregue esta aplicación a la carpeta / Aplicaciones /.
2) Agregue una fila (comando) en el archivo .bash_profile
(que está en mi directorio personal):
export PATH=/Applications/Postgres93.app/Contents/MacOS/bin/:$PATH Es una RUTA para psql
de Postgres93.app
. La fila (comando) se ejecuta cada vez que se inicia la consola.
3) Lanza Postgres93.app
desde la carpeta /Applications/
. Inicia un servidor local (el puerto es "5432" y el host es "localhost").
4) Después de todas estas manipulaciones, me alegré de ejecutar $ createuser -SRDP user_name
y otros comandos y para ver si funcionaba. Postgres93.app
puede ejecutarse cada vez que se inicia el sistema.
5) También, si quiere ver sus bases de datos gráficamente, debe instalar PG Commander.app
. Es una buena manera de ver tu DB de Postgres como tablas de datos bonitas
Por supuesto, es útil solo para el servidor local. Estaré contento si estas instrucciones ayudan a otros que se han enfrentado con este problema.
La respuesta de @Jagdish Barabari me dio la pista que necesitaba para resolver esto. Resulta que había dos versiones de postgresql instaladas, mientras que solo una se estaba ejecutando. Purgar todos los archivos postgresql y reinstalar la última versión resolvió este problema para mí.
Las causas de este error son muchas, así que primero localice su archivo de registro y verifique si tiene alguna pista. Puede estar en /usr/local/var/log/postgres.log
o /usr/local/var/postgres/server.log
o posiblemente en otro lugar. Si instaló con Homebrew, puede encontrar la ubicación en ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
.
Me enfrentaba a un problema similar aquí resolví este problema como a continuación.
En realidad, el proceso de postgres está muerto, para ver el estado de postgres ejecuta el siguiente comando
sudo /etc/init.d/postgres status
Dirá que el proceso está muerto. Simplemente inicie el proceso.
sudo /etc/init.d/postgres start
Mi problema terminó siendo que estaba usando Gas Mask (un administrador de archivos de hosts para Mac), y no tenía una entrada para localhost en el archivo de hosts que estaba usando.
Yo añadí:
127.0.0.1 localhost
Y eso resolvió mi problema.
Ninguno de los anteriores funcionó para mí. Tuve que reinstalar Postgres de la siguiente manera:
- Desinstalar postgresql con brew:
brew uninstall postgresql
-
brew doctor
(arregla lo que sea que esté aquí) -
brew prune
Eliminar todas las carpetas de Postgres:
-
rm -r /usr/local/var/postgres
-
rm -r /Users/<username>/Library/Application/ Support/Postgres
-
Reinstalar postgresql con brew:
brew install postgresql
- Servidor de inicio:
brew services start postgresql
- Ahora debe crear sus bases de datos ... (
createdb
)
Para mí, la solución fue simplemente reiniciar mi computadora. Primero probé a reiniciar con los servicios de Brew y, cuando eso no funcionó, reiniciar parecía ser la siguiente mejor opción para probar antes de buscar algunas de las soluciones más complicadas. Todo funcionó como debería después.
SI instaló a través de homebrew, utilice el siguiente comando
brew services stop postgresql
brew services start postgresql
Si su ubuntu se ejecutará el siguiente comando, simplemente reinicie el servidor ejecutando
$sudo service postgresql restart
o
sudo /etc/init.d/postgresql restart
SUPER NEWBIE ALERT: Estoy aprendiendo desarrollo web y el tutorial particular que estaba siguiendo mencionó que tengo que instalar Postgres, pero en realidad no mencioné que tengo que ejecutarlo también ... Una vez que abrí la aplicación Postgres todo estaba bien y dandy.
si tu postmaster.pid
se ha ido y no puedes reiniciar ni nada, haz esto:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
como se explica here inicialmente