Al igual que otros, recibo este error cuando ejecuto rake db: migrar en mi proyecto o incluso probar la mayoría de las tareas de base de datos para mis aplicaciones Ruby on Rails 3.2.
PGError (no se pudo conectar al servidor: no existe tal archivo o directorio. ¿El servidor se ejecuta localmente y acepta conexiones en el socket de dominio Unix "/tmp/.s.PGSQL.5432"?
Instalé PostgreSQL con Homebrew hace mucho tiempo y después de un intento de instalación de MongoDB recientemente, mi instalación de PostgreSQL nunca ha sido la misma. Estoy ejecutando OS X v10.6 Snow Leopard.
¿Qué hay de malo y cómo entiendo mejor cómo es y debe configurarse PostgreSQL en mi Mac?
Hasta ahora (creo) esto me dice que PostgreSQL no se está ejecutando (?).
ps -aef|grep postgres (ruby-1.9.2-p320@jct-ana) (develop) ✗
501 17604 11329 0 0:00.00 ttys001 0:00.00 grep postgres
¿Pero esto me dice que PostgreSQL se está ejecutando?
✪ launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist (ruby-1.9.2-p136)
homebrew.mxcl.postgresql: Already loaded
¿Cómo puedo solucionar esto? que no estoy viendo
PD: ~/Library/LaunchAgents
incluye dos archivos .plist de PostgreSQL. No estoy seguro si eso es relevante.
org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist
Intenté lo siguiente y obtuve un resultado como el siguiente.
$ psql -p 5432 -h localhost
psql: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
He leído desde entonces que esto ocurre porque OS X instala su propia versión de PostgreSQL y Homebrew instala una versión diferente en un lugar diferente y los comandos de PostgreSQL están buscando en el directorio / tmp /. Tendrá que buscar más en Stack Overflow, pero básicamente hace un enlace simbólico a PostgreSQL para que cualquier cosa que se encuentre en esa ruta tmp encuentre la ruta real, si eso tiene sentido.
Este es el enlace donde encontré algunas cosas más para probar, específicamente haciendo el enlace simbólico según lo anterior, Mac OSX Lion Postgres no acepta conexiones en /tmp/.s.PGSQL.5432 . Todavía deseo que alguien reúna una explicación decente de los conceptos detrás de la instalación de PostgreSQL en OS X y por qué todo es tan difícil.
Últimas ideas para ayudar con la resolución de problemas:
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
Entonces corre:
$ echo $PATH
Lo clave a tener en cuenta es esto:
Asegúrese de que la entrada de ruta para la copia de PostgreSQL que desea ejecutar VIENE ANTES de la ruta de acceso a PostgreSQL del sistema OS X.
Este es un requisito central que decide qué PostgreSQL se ejecuta y es lo que me dicen que conduce a la mayoría de estos problemas.
fuente
Respuestas:
Verifique que no haya postmaster.pid en su directorio de postgres, probablemente
/usr/local/var/postgres/
elimine esto e inicie el servidor.
Verifique: https://github.com/mperham/lunchy es un excelente contenedor para launchctl.
fuente
" Postgres.app " es una solución mejor si estás en OS X
Aquí está la solución:
cd /var
rm -r pgsql_socket
ln -s /tmp pgsql_socket
chown _postgres:_postgres pgsql_socket
Hay más información disponible en " postgresql 9.0.3. En Lion Dev Preview 1 ".
fuente
/tmp
a _postgres, pero bueno :)Para mi esto funciona
fuente
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
brew services restart postgresql
No such file or directory
en mi casoEsto funcionó para mí por el error que mencionaste. Haz uno de estos:
Posiblemente cambie su puerto predeterminado especificado en el
postgres.conf
archivo, si ha utilizado algo distinto del puerto predeterminado5432
durante la instalación.Cambie el número de puerto
postgresql.conf
y reinicie el servidor DB.En lugar de
psql
escribir el comando completo:fuente
Si está ejecutando Homebrew, desinstale Postgresql end pg gems: *
Descargue y ejecute el siguiente script para corregir el permiso en / usr / local: * https://gist.github.com/rpavlik/768518
Luego instale Postgres nuevamente y pg gem: *
Para iniciar launch postgresql al iniciar sesión, ejecute:
O comience manualmente.
Instalar gema pg
Espero haber ayudado
fuente
brew info postgres
:ARCHFLAGS="-arch x86_64" gem install pg
initdb /usr/local/var/postgres -E utf8
trabajos. Gracias un montón.Tuve ese problema cuando actualicé Postgres a 9.3.x. La solución rápida para mí fue degradar a la versión 9.2.x que tenía antes (no es necesario instalar una nueva).
"¿ Homebrew instala una versión específica de la fórmula? " Ofrece una explicación mucho más completa junto con formas alternativas de solucionar el problema.
fuente
Lo arreglé actualizando postgres.
Luego tuve que actualizar también las bases de datos para que sean compatibles con la nueva versión principal, porque actualicé de 10 a 11.
(fuente https://github.com/facebook/react-native/issues/18760#issuecomment-410533581 )
fuente
Entonces, para muchos de los problemas aquí, parece que las personas ya estaban ejecutando psql y tuvieron que eliminar
postmaster.pid
. Sin embargo, no tuve ese problema, ya que nunca había instalado correctamente los postgres en mi sistema.Aquí hay una solución que funcionó para mí en MAC OSX Yosemite
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
¡Espero que esto ayude! Toodles!
Además, esta respuesta me ayudó más: https://stackoverflow.com/a/21503349/3173748
fuente
Cuando ejecuta: psql -p 5432 -h localhost, no utiliza el controlador de bucle invertido, sino que utiliza un socket real y, por lo tanto, debe configurar postgres para aceptar conexiones de socket. Por lo tanto, aunque pgadmin y otros clientes pueden funcionar, psql no funcionará.
Debe cambiar tanto el archivo postgresql.conf como los archivos pg_hba.conf para permitir la conexión a través de un socket real. Esto también permitirá la conexión desde una IP remota, por lo que está deshabilitada de forma predeterminada.
Estos archivos están en el directorio de datos, pero la ubicación real puede ser diferente dependiendo de cómo se instaló Postgres. Con postgres en ejecución, ejecute el comando:
Estos dos archivos son el directorio -D (quizás / usr / local / pgsql / data).
Para el archivo postgresql.conf, elimine el comentario de listen_address y cámbielo a:
Para el pg_hba.conf agregue la línea:
fuente
Realmente no conozco Mac ni Homebrew, pero conozco muy bien PostgreSQL.
Desea averiguar dónde están los registros de PostgreSQL que intentan iniciarse y cuál es el directorio de socket para PostgreSQL. Por defecto, cuando crea PG, el directorio de socket es / tmp /. Si no cambió eso cuando compiló PG y luego inició PG, debería poder ver un archivo de socket en / tmp si lo hace: ls -al / tmp
El archivo de socket comienza con un ".", Por lo que no lo verá con '-a' a ls.
Si no ve un socket allí, y no ve nada de ps awux | grep postgres, entonces PG probablemente no se está ejecutando, o tal vez sí, y es el instalado por OSX. Lo que podría estar sucediendo es que podría estar teniendo un conflicto al escuchar en el puerto 5432 en localhost- use netstat -anp para ver qué, si es que hay algo, está escuchando en 5432. Si una Mac OSX PG ya está escuchando en ese puerto, entonces eso podría Se el problema.
Espero que ayude. He oído que homebrew puede hacer que las cosas sean un poco feas y muchas personas con las que he hablado fomentan el uso de una VM.
fuente
Encontré este error al ejecutar en Mac 10.15.5 usando homebrew.
Hay un archivo llamado postmaster.pid que debe eliminarse automáticamente cuando sale postresql.
Si no hace lo siguiente
fuente
La causa
Lion viene con una versión de postgres ya instalada y usa esos binarios por defecto. En general, puede evitar esto utilizando la ruta completa a los binarios de postgres homebrew, pero puede haber problemas con otros programas.
La solución
Vía
http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/
fuente
Una razón por la que obtiene este error es que su base de datos local de postgres se cierra cuando reinicia su computadora. En una nueva ventana de terminal, simplemente escriba:
para reiniciar el servidor.
fuente
Hola mundo :)
La mejor pero extraña forma para mí era hacer lo siguiente.
1) Descargue postgres93.app u otra versión. Agregue esta aplicación a la carpeta / Aplicaciones /.
2) Agregue una fila (comando) en el archivo
Es un CAMINO a.bash_profile
(que está en mi directorio de inicio):psql
partir dePostgres93.app
. La fila (comando) se ejecuta cada vez que se inicia la consola.3) Ejecutar
Postgres93.app
desde la/Applications/
carpeta. 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 ver que funcionó!Postgres93.app
puede ejecutarse cada vez que se inicia su sistema.5) Además, si desea ver sus bases de datos gráficamente, debe instalarlas
PG Commander.app
. Es una buena manera de ver su base de datos postgres como bonitas tablas de datosPor supuesto, es útil solo para el servidor local. Me alegrará si estas instrucciones ayudan a otros que se han enfrentado a este problema.
fuente
Tenía PostgreSQL 9.3 y obtuve el mismo error,
Lo arreglé usando:
Esto funciona para mi.
fuente
por lo que vale, experimenté este mismo error cuando tuve un error tipográfico (en
md4
lugar demd5
) en mipg_hba.conf
archivo (/etc/postgresql/9.5/main/pg_hba.conf
)Si llegaste aquí como lo hice yo, vuelve a verificar ese archivo una vez para asegurarte de que no haya nada ridículo allí.
fuente
pg_hba.conf
archivoPuede haber diferentes problemas al ejecutar PostgreSQL localmente. Recomendaría limpiar todas las versiones de postgres instaladas y comenzar de nuevo. Una vez que lo tenga instalado, es muy fácil recrear su base de datos si tiene su proyecto de rieles actualizado
db/schema.rb
Así es como suelo instalar PostgreSQL en una Mac . Si está ejecutando su base de datos bajo el usuario raíz localmente, es posible que desee omitir el último paso que crea un
todo
usuariofuente
Una de las razones podría ser que
Unix_socket_directories en el archivo postgresql.conf no aparece en la lista del directorio que está buscando.
En el ejemplo de pregunta, está buscando el directorio / tmp, esto debe proporcionarse en el archivo postgresql.conf
algo como esto:
Esta solución funcionó para mí.
fuente
Si estás en MacOS y estás usando homebrew, esta respuesta me pareció extremadamente útil:
https://stackoverflow.com/a/27708774/4062901
Para mí, mi servidor se estaba ejecutando, pero debido a una actualización, tuve problemas para conectarme (nota: uso los servicios de preparación). Si Postgres se está ejecutando, intente
cat /usr/local/var/postgres/server.log
ver qué dicen los registros. Mi error fue una migración, no un problema de conexión.También después de la migración manual que proponen (que funciona pero) descubrí que ya no había una tabla para mi usuario. Pruebe este comando para corregir eso:
createdb
(respondido a través de psql: FATAL: la base de datos "<usuario>" no existe )fuente
Simplemente reinicie Postgres tan pronto como aparezca el error al ejecutar
brew services restart postgresql
e intente nuevamentefuente
para mí el comando
rm /usr/local/var/postgres/postmaster.pid
no funcionó porque instalé una versión específica de postgresql con homebrew.el comando es correcto
rm /usr/local/var/postgres@10/postmaster.pid
.entonces
brew services restart postgresql@10
.fuente
Es muy simple. Solo agregue host en su archivo database.yaml.
fuente