Acabo de actualizar mi MacMini Server de Lion Server a Mountain Lion usando OS X Server. Tengo el mismo problema con PostgreSQL que tuve el año pasado cuando instalé Lion Server por primera vez.
Cuando trato de hacer cualquier tipo de comando de terminal de PostgreSQL, aparece el siguiente mensaje de error notorio que muchos han recibido a lo largo de los años:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Estaba intentando cambiar la contraseña de _postgres cuando recibí el error. Probé varios comandos pero obtuve el mismo error. Acabo de reiniciar mi servidor pero no tuve suerte. Inicié sesión como root para mirar / var / pgsql_socket y la carpeta está vacía. La carpeta / var / pgsql_socket_alt también está vacía.
He comprobado en línea sobre esto. Sin embargo, casi todas las soluciones que he leído, incluidas las de Stack Overflow, sugieren una eliminación y reinstalación de PostgreSQL. No lo sé, pero esta no parece una opción plausible porque varias opciones en la aplicación del servidor usan PostgreSQL. Me comuniqué con el soporte empresarial de Apple (sin acuerdo) y me dijeron que mi problema tendría que ser resuelto por los desarrolladores que arrojarían $ 695.
Tengo un sitio web que está caído en este momento porque no puedo reconstruirlo. No sé a dónde acudir para obtener ayuda con esto en este momento. Seguiré buscando en línea para ver si puedo encontrar algo. Sin embargo, espero que alguien pueda darme una respuesta rápida para que pueda reconstruir mi base de datos.
Actualización: 13/12/2012 15:33 GMT-6
Aquí está mi salida para ps auwwx | grep postg:
_postgres 28123 0.0 0.1 2479696 7724 ?? Ss 3:01PM 0:00.04 /Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D /Library/Server/PostgreSQL For Server Services/Data -c listen_addresses= -c log_connections=on -c log_directory=/Library/Logs/PostgreSQL -c log_filename=PostgreSQL_Server_Services.log -c log_line_prefix=%t -c log_lock_waits=on -c log_statement=ddl -c logging_collector=on -c unix_socket_directory=/Library/Server/PostgreSQL For Server Services/Socket -c unix_socket_group=_postgres -c unix_socket_permissions=0770
server1 28216 0.0 0.0 2432768 620 s000 R+ 3:02PM 0:00.00 grep postg
_postgres 28138 0.0 0.0 2439388 752 ?? Ss 3:01PM 0:00.01 postgres: stats collector process
_postgres 28137 0.0 0.0 2479828 1968 ?? Ss 3:01PM 0:00.00 postgres: autovacuum launcher process
_postgres 28136 0.0 0.0 2479696 544 ?? Ss 3:01PM 0:00.00 postgres: wal writer process
_postgres 28135 0.0 0.0 2479696 732 ?? Ss 3:01PM 0:00.01 postgres: writer process
_postgres 28134 0.0 0.0 2479696 592 ?? Ss 3:01PM 0:00.00 postgres: checkpointer process
_postgres 28131 0.0 0.0 2439388 368 ?? Ss 3:01PM 0:00.00 postgres: logger process
Actualización: 13/12/2012 18:10 GMT-6
Después de una intensa búsqueda en la web, se encontró este video. Pude hacer funcionar PostgreSQL y eliminar el error. Puedo conectarme usando pgadmin y phppgadmin. Estaba a punto de volver a Lion Server por pura frustración. Ahora no tendré que hacerlo.
fuente
psql
está en suPATH
antes de la versión que instaló. Buscan el socket Unix en diferentes lugares. Utilice tcp / ip especificando-h localhost
o, preferiblemente, corríjaloPATH
para quepsql
se encuentre primero el correcto . La extraña decisión de Apple de no solo empaquetar PostgreSQL, sino meterse con él para colocar las cosas en lugares no estándar es la causa principal de este problema.homebrew
yosx
@CraigRinger pueden tener la respuesta correcta para usted, confirme conbrew doctor
.Respuestas:
Pude agregar lo siguiente a mi .bash_profile para evitar el error:
Esto funciona porque :
Su sistema operativo admite sockets de dominio Unix, pero el socket Unix de PostgreSQL que
psql
necesita no existe o está en una ubicación diferente a la que espera.Especificar un nombre de host de forma explícita
localhost
obligapsql
a utilizar TCP / IP. Establecer una variable de entornoPGHOST
es una de las formas de lograrlo. Está documentado en el manual de psql .fuente
host: localhost
archivo en database.yml. @dwhalendatabase.yml
, cuando apareció este error después de degradar Postgres a una versión anterior administrada por Homebrew.Intente pegar en la consola esto:
fuente
Pude resolver simplemente completando 127.0.0.1 para la dirección de host de PostgreSQL en lugar de dejarlo en blanco. (Ejemplo de Django)
fuente
Abra 'postgresql.conf' en su editor favorito. Busque la variable 'unix_socket_directories', lo más probable es que se vea así:
Cambie la línea a esto:
Tenga en cuenta que si desea que los archivos de socket en más de un directorio se separen con una coma.
fuente
Una solución mucho más simple (gracias a http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/ ). Me había actualizado a postgres 9.4. En mi caso, todo lo que necesitaba hacer (después de un día de buscar en Google y no tener éxito)
Reinicie webrick y listo.
fuente
Como lo mencionaron otros en los comentarios, una solución realmente simple a este problema es declarar la base de datos 'host' dentro de la configuración de la base de datos. Agregar esta respuesta solo para que quede un poco más claro para cualquiera que lea esto.
En una aplicación Ruby on Rails, por ejemplo, edite /config/database.yml:
Nota: la última línea agregada para especificar el host. Antes de actualizar a Yosemite, nunca necesité especificar el host de esta manera.
Espero que esto ayude a alguien.
Salud
fuente
.s.PGSQL.5432
archivo.Verifique el estado de la base de datos:
Si la base de datos no se está ejecutando, inicie la base de datos:
fuente
¿Puedes comprobar tu archivo postgresql.conf?
¿En qué puerto se está ejecutando su postgres?
Creo que no se está ejecutando en el puerto 5432, si no lo cambia a 5432
O en uso de terminal
fuente
Tuve este problema con Django.
Corríjalo estableciendo explícitamente su nombre de host en "localhost".
fuente
hago en palabra haciendo esto:
y elija sus lugares preferidos
(9.5 es mi versión de postgresql)
y luego la palabra!
fuente
Si tiene el problema anterior pero ha actualizado desde Yosemite, entonces se necesita un enfoque diferente ya que la solución de actualización puede destruir algunos archivos. Más detalles están en `pg_tblspc` que faltan después de la instalación de la última versión de OS X (Yosemite o El Capitan) .
fuente
fuente
Seguí recibiendo el error anterior y ninguna de las soluciones anteriores funcionó para mí. Finalmente, la siguiente solución resolvió mi problema en Mac OS X
Instalar postgres usando brew
Instalar servicios de preparación
Para iniciar postgres como servicio en segundo plano
Para detener postgres manualmente
También podemos usar brew services para reiniciar Postgres
fuente
Verifique que el servidor de Postgres se esté ejecutando con el siguiente código
si el servidor de Postgres está inactivo, escriba el siguiente comando.
fuente
Recibí este error después de que mi computadora se congeló y reinició por sí sola. La solución para mí no se encontró en esta página, sino en otra pregunta SO muy calificada con el mismo error psql: no se pudo conectar al servidor: no existe ese archivo o directorio (Mac OS X) . La respuesta: simplemente elimine este archivo
/usr/local/var/postgres/postmaster.pid
, luegobrew services restart postgresql
hizo el truco. Preste atención a la advertencia en la respuesta vinculada sobre matar procesos de postgres antes de hacer esto, de lo contrario, podría corromper su base de datos de forma permanente.fuente
Los permisos de archivo son restrictivos en la base de datos de Postgres propiedad de Mac OS. Estos permisos se restablecen después de reiniciar o reiniciar Postgres: por ejemplo, serveradmin start postgres.
Por lo tanto, restablezca temporalmente los permisos o la propiedad:
El restablecimiento de permisos no es seguro, así que instale una versión de la base de datos de su propiedad como solución.
fuente
Me tomó un tiempo, pero finalmente pude hacer que esto funcionara después de seguir las sugerencias ofrecidas y realizar búsquedas web adicionales. Usé la información en el siguiente video de YouTube creado por Mactasia:
http://www.youtube.com/watch?v=y1c7WFMMkZ4
Cuando hice esto, vi el archivo con .lock como extensión. Sin embargo, todavía recibí el error cuando intenté iniciar Rails Server cuando reanudé el trabajo en mi aplicación Rails usando PostgreSQL. Esta vez obtuve un error de permiso denegado. Fue entonces cuando recordé que no solo tuve que cambiar listen_addresses en el plist, sino que también tuve que cambiar unit_socket_permissions a 0777. También inicié sesión como root para cambiar los permisos en la carpeta var / pgsql_socket donde podía acceder a él en el nivel de usuario. Postgres está funcionando bien ahora. Estoy en el proceso de recargar mis datos desde mi copia de seguridad SQL.
Lo que no entendí fue que cuando encendí el wiki, PostgreSQL supuestamente estaba funcionando cuando hice un sudo serveradmin fullstatus postgres pero todavía recibí el error. Oh bien.
fuente
Acabo de crear un nuevo clúster y eso funcionó para mí, estaba usando (PostgreSQL) 9.3.20:
fuente
Primero elimine el postgres instalado:
Luego instale 'synaptic':
Luego instala Postgres
fuente
Para la aplicación RubyOnRails, agregue
localhost
si usa la versión personalizada de Postgresqlfuente