rails proyecto new myapp digitalocean datos crear conexion conectar con ruby-on-rails macos postgresql

ruby-on-rails - proyecto - rails new myapp postgresql



No se puede conectar a PostgreSQL local (21)

psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Estoy buscando la solución por un tiempo. Entonces, este también me arregló el problema (reiniciar db):

rm -r /usr/local/var/postgres initdb /usr/local/var/postgres -E utf8 pg_ctl -D /usr/local/var/postgres -l logfile start

Uso OS X 10.11.3 con brew.

Me las arreglé para poner bork en mi entorno de desarrollo local.

Todas mis aplicaciones Rails locales ahora están dando el error:

PGError could not connect to server: Permission denied Is the server running locally and accepting connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

No tengo idea de lo que ha causado esto.

Mientras buscaba una solución, actualicé todas las gemas incluidas, las gemas del sistema actualizadas y los MacPorts actualizados. Sin alegría.

Otros han informado sobre este problema al actualizar de OSX Leopard a Lion, debido a la confusión sobre qué versión de Postgres se debe utilizar (es decir, la versión de OSX o la versión de MacPorts). He estado ejecutando Lion durante varios meses, por lo que parece extraño que esto suceda ahora.

Soy reacio a meterme demasiado sin haber entendido primero cuál es el problema. ¿Cómo puedo depurar esto metódicamente?

¿Cómo puedo determinar cuántas versiones de PostgreSQL hay en mi sistema, a cuál se accede y dónde está ubicado? ¿Cómo soluciono esto si se está utilizando el PostgreSQL incorrecto?

Perdón por las preguntas novatos. ¡Todavía estoy aprendiendo cómo funciona esto! Gracias por cualquier puntero.

EDITAR

Algunas actualizaciones basadas en sugerencias y comentarios a continuación.

Traté de ejecutar pg_lsclusters que devolvió un error de command not found .

Luego intenté localizar mi archivo pg_hba.conf y encontré estos tres archivos de muestra:

/opt/local/share/postgresql84/pg_hba.conf.sample /opt/local/var/macports/software/postgresql84/8.4.7_0/opt/local/share/postgresql84/pg_hba.conf.sample /usr/share/postgresql/pg_hba.conf.sample

Entonces, ¿supongo que hay 3 versiones de PSQL instaladas? Macports, OSX predeterminado y ???

Luego hice una búsqueda para la secuencia de comandos de inicio ps -ef | grep postgres ps -ef | grep postgres que regresó

0 56 1 0 11:41AM ?? 0:00.02 /opt/local/bin/daemondo --label=postgresql84-server --start-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper restart ; --pid=none 500 372 1 0 11:42AM ?? 0:00.17 /opt/local/lib/postgresql84/bin/postgres -D /opt/local/var/db/postgresql84/defaultdb 500 766 372 0 11:43AM ?? 0:00.37 postgres: writer process 500 767 372 0 11:43AM ?? 0:00.24 postgres: wal writer process 500 768 372 0 11:43AM ?? 0:00.16 postgres: autovacuum launcher process 500 769 372 0 11:43AM ?? 0:00.08 postgres: stats collector process 501 4497 1016 0 12:36PM ttys000 0:00.00 grep postgres

Publiqué los contenidos de postgresql84-server.wrapper en http://pastebin.com/Gj5TpP62 .

Intenté ejecutar la port load postgresql184-server pero recibí un error. Error: Port postgresql184-server not found .

Todavía estoy muy confundido sobre cómo solucionar esto, y aprecio cualquier sugerencia de "para tontos".

¡Gracias!

EDIT2

Este problema comenzó después de que tuve algunos problemas con Daemondo. Mis aplicaciones locales de Rails se bloquearon con un error de aplicación a lo largo de las líneas de "la gema de daemondo no se puede encontrar". Luego revisé una serie de actualizaciones de paquetes, actualizaciones de gemas, actualizaciones de puertos y actualizaciones de brew para intentar encontrar el problema.

¿Podría este error ser un problema con daemondo?


Así es como resolví ese mensaje de error, basado en parte en la respuesta de wildplasser.

find / -name .s.PGSQL.5432 -ls 2> /dev/null => ... /tmp/.s.PGSQL.5432

Entonces, está mi socket o lo que sea, pero el cliente lo busca en:

/var/run/postgresql/.s.PGSQL.5432

Simplemente haga un enlace simbólico al /tmp/.s.PGSQL.5432 :

sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

Espero que esto ayude a cualquiera. Parece una especie de error, pero bueno, ¡funciona!


Empecé a recibir esto después de actualizar a un nuevo postgres: no me di cuenta de que tenía archivos de datos de espera.

Primero intenté iniciar el servidor postgres:

postgres -D /usr/local/var/postgres

que es cómo vi este error

FATAL: database files are incompatible with server DETAIL: The data directory was initialized by PostgreSQL version 9.0, which is not compatible with this version 9.3.5.

Entonces encontré esta respuesta en SO - relacionada con un error de incompatibilidad: https://serverfault.com/questions/342626/how-do-i-upgrade-postgresl-database-incompatibility-error

Esto es lo que lo solucionó

mv /usr/local/var/postgres /usr/local/var/postgres.old initdb -D /usr/local/var/postgres


En mi caso, ninguna de las soluciones anteriores fue buena. En lugar de usar socket, puede usar el número de port TCP + host en el archivo de configuración de Rails. Entonces, en el archivo database.yml simplemente agrega dos líneas como aquí:

... adapter: postgresql encoding: unicode pool: 5 host: localhost port: 5432

Esto resolvió mi problema :)

Antes de usar esta corrección:

sudo mkdir /var/run/postgresql sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

Pero después de cada reinicio /tmp/.s.PGSQL.5432 se eliminó y tuve que repetir estos comandos. La solución funciona, pero es horrible, así que mejor modificar el archivo de configuración de la base de datos de Rails :)


Estaba obteniendo el mismo error (resulta que fue un error con postmaster.pid . Así es como obtuve postgres funcionando nuevamente ( crédito a Ricardo Burillo por la solución ):

$ rm /usr/local/var/postgres/postmaster.pid $ pg_resetxlog -f /usr/local/var/postgres


Esto me sucedió hoy después de la muerte de la batería de mi Macbook. Creo que esto puede ser causado por un apagado incorrecto. Todo lo que tienes que hacer en casos como el mío es eliminar postmaster.pid

Navega a la carpeta

cd /usr/local/var/postgres

Compruebe si postmaster.pid está presente

ls

Eliminar postmaster.pid

rm postmaster.pid


Esto realmente parece un error de permisos de archivos. Los sockets de dominio Unix son archivos y tienen permisos de usuario como cualquier otro. Parece que el usuario de OSX que intenta acceder a la base de datos no tiene permisos de archivos para acceder al archivo de socket. Para confirmar esto, he hecho algunas pruebas en Ubuntu y psql para tratar de generar el mismo error (incluido a continuación).

/var/pgsql_socket verificar los permisos en el archivo de socket y sus directorios /var y /var/pgsql_socket . Su aplicación Rails (usuario de OSX) debe tener permisos de ejecución (x) en estos directorios (preferiblemente otorgar permisos a todos) y el socket debe tener permisos completos (wrx). Puede usar ls -lAd <file> para verificar esto, y si alguno de ellos es un enlace simbólico, debe verificar el archivo o directorio al que apunta el enlace.

Puede cambiar los permisos en el directorio para usted mismo, pero el socket está configurado por postgres en postgresql.conf . Esto se puede encontrar en el mismo directorio que pg_hba.conf (Tendrás que averiguar cuál). Una vez que haya establecido los permisos, deberá reiniciar postgresql.

# postgresql.conf should contain... unix_socket_directory = ''/var/run/postgresql'' # dont worry if yours is different #unix_socket_group = '''' # default is fine here #unix_socket_permissions = 0777 # check this one and uncomment if necessary.

EDITAR:

He hecho una búsqueda rápida en google, que es posible que desee examinar para ver si es relavent. Esto bien podría dar como resultado cualquier intento de find su archivo de configuración que falla.

http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html

Error de mensajes:

Usuario no encontrado en pg_hba.conf

psql: FATAL: no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off

Usuario fallido de autenticación de contraseña:

psql: FATAL: password authentication failed for user "couling"

Falta el archivo de socket de Unix:

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"?

El socket de Unix existe, pero el servidor no lo escucha.

psql: could not connect to server: Connection refused Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Permisos de archivos incorrectos en el archivo de socket de Unix :

psql: could not connect to server: Permission denied Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?


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.


Intente desinstalar la gema de pg ( gem uninstall pg ) y luego vuelva a instalarla. Si usa bundler, entonces bundle install , else gem install pg . Además, asegúrese de que path elija la versión correcta: Lion tiene una versión de posgresql (las versiones anteriores no) y puede estar en la ruta antes de su versión instalada localmente (por ejemplo, MacPorts, homebrew).

En mi caso: instalación homebrew de postgresql, postgresql actualizado, rieles, etc. y luego recibí este error. Desinstalar y reinstalar la gema pg lo hizo por mí.


La ubicación del archivo de socket se procesa en la gema en el momento de la compilación. Por lo tanto, necesitas reconstruir tu joya pg.

gem pristine pg # or bundle exec gem pristine pg

Esto debería resolver ese problema en particular.


Leí muchos temas sobre este error y la solución para mí fue simplemente reiniciar el postgres con:

sudo service postgresql restart

Que no se menciona aquí


Lo que resolvió este error para mí fue eliminar un archivo llamado postmaster.pid en el directorio postgres. por favor vea mi pregunta / respuesta usando el siguiente enlace para instrucciones paso a paso. mi problema no estaba relacionado con los permisos de archivos:

psql: no se pudo conectar al servidor: no existe tal archivo o directorio (Mac OS X)

las personas que respondieron a esta pregunta dejaron de jugar, ¡gracias por eso! Subí todo lo que pude


MacOSX aquí. Tuve el mismo problema después de actualizar mi instalación postresql de un pre-9.1 a 9.1.2 usando homebrew. (Por cierto, recuerde volcar las bases de datos antes de la actualización con pg_dump, las bases de datos anteriores a la 9.1 son incompatibles). Mismo problema, los mismos mensajes de error.

La desinstalación de la gema pg fue lo mejor para mí. De hecho, tuve que bailar bastante para descubrir el problema. Primero hice una desinstalación global de gemas, despejando el mazo de todas las gemas antiguas (había algunas). Luego eliminé pg de mi Gemfile, rebundled, restauré la referencia de pg y rebotó una vez más.

Después de eso, funcionó a las mil maravillas.


Mi intuición es que esto es (una vez más) una cosa de mac / OSX: la interfaz y la parte de atrás asumen una ubicación diferente para el socket del dominio de Unix (que funciona como un punto de encuentro ).

Lista de verificación:

  • Está funcionando postgres: ps aux | grep postgres | grep -v grep ps aux | grep postgres | grep -v grep ps aux | grep postgres | grep -v grep debería hacer el truco
  • Dónde se encuentra el socket: find / -name .s.PGSQL.5432 -ls (el socket solía estar en / tmp; podría empezar a buscar allí)
  • incluso si localiza el socket (dominio de Unix), el cliente podría usar una ubicación diferente. (Esto sucede si mezclas distribuciones, o si tienes una distribución instalada en algún lugar y tienes otra instalación (por ejemplo, desde la fuente) en otro lugar), con el cliente y el servidor usando diferentes direcciones de encuentro.

Si postgres se está ejecutando, y el socket realmente existe, podrías usar:

  • psql -h /the/directory/where/the/socket/was/found mydbname

(que intenta conectarse al socket de dominio de Unix)

; ahora debería obtener el indicador psql: pruebe /d y luego /q para salir. También puedes probar:

  • psql -h localhost mydbname .

(que intenta conectarse a localhost (127.0.0.1)

Si estos intentos fallan debido a una autorización insuficiente, puede modificar pg_hba.conf (y SIGHUP o reiniciar) En este caso: también verifique los registros.

Una pregunta similar: no se puede iniciar Postgres

Nota: Si puede acceder al indicador psql, la solución rápida a este problema es simplemente cambiar su config/database.yml , agregar:

host: localhost

o podrías intentar agregar:

host: /the/directory/where/the/socket/was/found

En mi caso, host: /tmp


Obtuve este error cuando estaba configurando Posgtres con Django, estoy usando Back Track y viene con Postgres instalado. Supongo que la configuración es el problema. Lo arreglé quitándolo por completo y luego volviendo a instalarlo.

sudo apt-get remove postgresql sudo apt-get purge postgresql

Ahora ejecuta:

apt-get --purge remove postgresql/*

para eliminar todo PostgreSQL de su sistema. Solo purgar el paquete postgres no es suficiente, ya que es solo un metapaquete vacío.

Una vez que se hayan eliminado todos los paquetes de PostgreSQL, ejecute:

rm -r /etc/postgresql/ rm -r /etc/postgresql-common/ rm -r /var/lib/postgresql/ userdel -r postgres groupdel postgres

Ahora debería poder:

apt-get install postgresql


Probé la mayoría de las soluciones a este problema pero no pude hacer que funcionara.

lsof -P | grep '':5432'' | awk ''{print $2}'' lsof -P | grep '':5432'' | awk ''{print $2}'' lsof -P | grep '':5432'' | awk ''{print $2}'' que mostró el PID del proceso en ejecución. Sin embargo, no pude matarlo con kill -9 <pid> .

Cuando ejecuté pkill postgresql el proceso finalmente se detuvo. Espero que esto ayude.


Si obtiene un error similar:

psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Esto podría hacer el truco (lo hizo por mí):

initdb /usr/local/var/postgres -E utf8

El directorio especificado debe ser diferente si no está utilizando OSX / Brew.

Nota: Este no es el mensaje de error exacto visto anteriormente, pero este hilo es el primer resultado para ese mensaje de error.


Solo confirmó que tenía un problema similar en PSQL y Django,

Parecía porque mi servidor psql no se cerró correctamente y el archivo postmaster.pid todavía estaba presente (debería eliminarse en el apagado correcto automáticamente) en mi carpeta postgres.

Eliminado esto y todo bien


Tuve este problema que me atormentaba, y luego de una investigación más profunda (ejecución de rake db:setup ), vi que los rieles estaban tratando de conectarse a una instancia de postgres previamente utilizada, una que se almacenaba en variables env como DATABASE_URL.

La solución: unset DATABASE_URL

fuente: https://.com/a/17420624/2577622


Tuve un problema similar cuando traté de usar postgresql con rieles. La actualización de mi Gemfile para usar la nueva versión de gem pg resuelve este problema para mí. (gema pg versión 0.16.0 funciona). En el uso de Gemfile:

gem ''pg'', ''0.16.0''

luego ejecuta lo siguiente para actualizar la gema

bundle install --without production bundle update bundle install


gem uninstall pg

En OS X con Homebrew:

gem install pg -- --with-pg-config=/usr/local/bin/pg_config