subir servidor reiniciar rails iniciar ejecutar configurar ruby-on-rails ruby database-connection rails-postgresql pg

ruby on rails - reiniciar - PG:: ConnectionBad-no se pudo conectar al servidor: conexión rechazada



servidor ruby (28)

  1. Desinstalar pg:

    gem uninstall pg

  2. Desinstalar postgres:

    brew uninstall postgres

  3. Pincha en la carpeta postgres que podría estar persistiendo con un montón de cosas obsoletas en:

    rm -rf /usr/local/var/postgres

  4. Reiniciar (tal vez innecesario)

  5. Reinstalar pg:

    brew install postgres

  6. Mi comentario en la respuesta de Chris Slade comienza pg por el camino difícil, ahora uso los servicios de brew que han simplificado mi vida de muchas maneras:

    brew install services

  7. Y empieza pg con ello:

    brew services start postgresql

  8. Vuelva a instalar la gema:

    gem install pg

Y bobsyouruncle.

Cada vez que ejecuto mi servidor rieles 4.0, obtengo esta salida.

Started GET "/" for 127.0.0.1 at 2013-11-06 23:56:36 -0500 PG::ConnectionBad - 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" (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" (fe80::1) and accepting TCP/IP connections on port 5432? : activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:825:in `connect'' activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:542:in `initialize'' activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `postgresql_connection'' activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:440:in `new_connection'' activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:450:in `checkout_new_connection'' activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `acquire_connection'' activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:356:in `block in checkout'' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'' activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:355:in `checkout'' activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:265:in `block in connection'' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'' activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:264:in `connection'' activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:546:in `retrieve_connection'' activerecord (4.0.0) lib/active_record/connection_handling.rb:79:in `retrieve_connection'' activerecord (4.0.0) lib/active_record/connection_handling.rb:53:in `connection'' activerecord (4.0.0) lib/active_record/migration.rb:792:in `current_version'' activerecord (4.0.0) lib/active_record/migration.rb:800:in `needs_migration?'' activerecord (4.0.0) lib/active_record/migration.rb:379:in `check_pending!'' activerecord (4.0.0) lib/active_record/migration.rb:366:in `call'' actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'' activesupport (4.0.0) lib/active_support/callbacks.rb:373:in `_run__1613334440513032208__call__callbacks'' activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks'' actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call'' actionpack (4.0.0) lib/action_dispatch/middleware/reloader.rb:64:in `call'' actionpack (4.0.0) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'' better_errors (0.9.0) lib/better_errors/middleware.rb:84:in `protected_app_call'' better_errors (0.9.0) lib/better_errors/middleware.rb:79:in `better_errors_call'' better_errors (0.9.0) lib/better_errors/middleware.rb:56:in `call'' actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'' actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'' railties (4.0.0) lib/rails/rack/logger.rb:38:in `call_app'' railties (4.0.0) lib/rails/rack/logger.rb:21:in `block in call'' activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged'' activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged'' activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged'' railties (4.0.0) lib/rails/rack/logger.rb:21:in `call'' quiet_assets (1.0.2) lib/quiet_assets.rb:18:in `call_with_quiet_assets'' actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'' rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'' rack (1.5.2) lib/rack/runtime.rb:17:in `call'' activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call'' rack (1.5.2) lib/rack/lock.rb:17:in `call'' actionpack (4.0.0) lib/action_dispatch/middleware/static.rb:64:in `call'' railties (4.0.0) lib/rails/engine.rb:511:in `call'' railties (4.0.0) lib/rails/application.rb:97:in `call'' rack (1.5.2) lib/rack/content_length.rb:14:in `call'' thin (1.5.1) lib/thin/connection.rb:81:in `block in pre_process'' thin (1.5.1) lib/thin/connection.rb:79:in `pre_process'' thin (1.5.1) lib/thin/connection.rb:54:in `process'' thin (1.5.1) lib/thin/connection.rb:39:in `receive_data'' eventmachine (1.0.3) lib/eventmachine.rb:187:in `run'' thin (1.5.1) lib/thin/backends/base.rb:63:in `start'' thin (1.5.1) lib/thin/server.rb:159:in `start'' rack (1.5.2) lib/rack/handler/thin.rb:16:in `run'' rack (1.5.2) lib/rack/server.rb:264:in `start'' railties (4.0.0) lib/rails/commands/server.rb:84:in `start'' railties (4.0.0) lib/rails/commands.rb:78:in `block in <top (required)>'' railties (4.0.0) lib/rails/commands.rb:73:in `<top (required)>'' bin/rails:4:in `<main>''

Estoy ejecutando Mavericks OS X 10.9, así que no sé si ese es el problema. He intentado todo lo que pude pero nada parece funcionar. He desinstalado e instalé postgres y pg gem varias veces.

Este es mi archivo database.yml

development: adapter: postgresql encoding: unicode database: metals-directory_development pool: 5 username: password: template: template0 host: localhost port: 5432 test: &test adapter: postgresql encoding: unicode database: metals-directory_test pool: 5 username: password: template: template0 host: localhost port: 5432 staging: adapter: postgresql encoding: unicode database: metals-directory_production pool: 5 username: password: template: template0 host: localhost production: adapter: postgresql encoding: unicode database: metals-directory_production pool: 5 username: password: template: template0 host: localhost cucumber: <<: *test

¿Alguien puede ayudarme?


¿Tiene instalado postgresql dentro de su sistema? Si no, entonces mira Instalar postgresql . Después de integrar con éxito postgresql en su sistema, puede escribir algo así en su terminal de sistema:

which psql #=> /usr/bin/psql

Después de eso, debe crear un usuario y una base de datos en postgresql como este:

sudo su - postgres psql

Entonces puedes ver lo siguiente dentro de tu terminal

postgres=#

Escriba allí:

CREATE USER yourname WITH PASSWORD ''passwordhere''; CREATE DATABASE metals-directory_production WITH OWNER yourname; GRANT ALL PRIVILEGES ON DATABASE metals-directory_production TO yourname;

Después de hacer esto, entonces necesita corregir su database.yml . Probablemente necesitas algo así:

development: adapter: postgresql encoding: unicode database: metals-directory_development pool: 5 username: yourname password: passwordhere ### password you have specified within psql host: localhost port: 5432 ### you can configure it in file postgresql.conf

Además, si tiene problemas con postgresql, es una buena idea verificar pg_hba.conf


Acabo de ejecutar este comando sudo service postgresql restart y todo funcionó de nuevo.


Acabo de tener este problema y ninguna de las soluciones sugeridas funcionó para mí. Después de un montón de googlear, encontré una solución. Esto es lo que funcionó para mí.

Primero, tuve que ejecutar este comando para iniciar el servidor y supongo que establecer la ubicación del archivo de configuración.

pg_ctl -D /usr/local/var/postgres start && brew services start postgresql

Luego ejecuté este comando para acceder a postgres

psql postgres

Y en el indicador de postgres, escribí "/ du" para enumerar los roles

postgres=# /du

El rol de postgres faltaba, así que tuve que crearlo con este comando

CREATE ROLE POSTGRES WITH SUPERUSER CREATEDB CREATEUSER CREATEROLE REPLICATION BYPASSRLS ;

Eso resolvió mi problema y espero que esto ayude a alguien más.


Como lo describe @Magne, el error PG::ConnectionBad - could not connect to server: Connection refused se puede presentar después de una actualización mayor / menor de la versión (por ejemplo, 9.5 -> 9.6 o 9 -> 10 ) de PostgreSQL.

Recibí este error después de haber ejecutado brew upgrade postgresql después del lanzamiento de PostgreSQL versión 9.6. El problema es que las actualizaciones de la versión principal / secundaria requieren pasos adicionales para migrar la fecha anterior a la nueva versión.

Como comprobar si este es tu problema.

Puede comprobar si este es el problema al verificar la última versión de PostgreSQL de brew formula instalada con homebrew ...

$ brew info postgresql /usr/local/Cellar/postgresql/9.5.4_1 (3,147 files, 35M) Poured from bottle on 2016-10-14 at 13:33:28 /usr/local/Cellar/postgresql/9.6.1 (3,242 files, 36.4M) * Poured from bottle on 2017-02-06 at 12:41:00

... y luego comparándolo con la PG_VERSION actual

$ cat /usr/local/var/postgres/PG_VERSION 9.5

Si la PG_VERSION es menor que la última fórmula de brew y la diferencia es un cambio de versión mayor / menor, entonces este es probablemente su problema.

Cómo corregir (es decir, cómo actualizar los datos)

Las instrucciones a continuación son para una actualización de 9.5 a 9.6. Cambie los números de versión según corresponda para su propia actualización

Paso 1. Asegúrate de que PostgreSQL esté apagado:

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist # or, with Homebrew... $ brew services stop postgresql

Paso 2. Haz una nueva base de datos prístina:

$ initdb /usr/local/var/postgres9.6 -E utf8

Paso 3. Comprueba cuáles son las versiones binarias antiguas y nuevas:

$ ls /usr/local/Cellar/postgresql/ 9.5.3 9.5.4 9.6.1

Tenga en cuenta que en este ejemplo estoy actualizando de 9.5.4 binario a 9.6.1 binario

Paso 4. Migre los datos actuales a la nueva base de datos usando la utilidad pg_upgrade .

$ pg_upgrade / -d /usr/local/var/postgres / -D /usr/local/var/postgres9.6 / -b /usr/local/Cellar/postgresql/9.5.4/bin/ / -B /usr/local/Cellar/postgresql/9.6.1/bin/ / -v

  • -d bandera especifica el directorio de datos actual
  • -D flag especifica el nuevo directorio de datos que se creará
  • -b especifica el binario antiguo
  • -B especifica el nuevo binario que estamos actualizando a

Paso 5. Mueva el viejo directorio de datos fuera del camino

$ mv /usr/local/var/postgres /usr/local/var/postgres9.5

Paso 6. Mueva el directorio de datos recién creado a donde PostgreSQL espera que esté

$ mv /usr/local/var/postgres9.6 /usr/local/var/postgres

Paso 7. Inicia PostgreSQL de nuevo.

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist # or, if you''re running a current version of Homebrew $ brew services start postgresql

Paso 8. Si estás usando la gema de pg para Rails, debes recompilarla desinstalando y reinstalando la gema (omite este paso si no estás usando la gema de pg)

$ gem uninstall pg $ gem install pg

Paso 9. (opcional) Una vez que te hayas asegurado de que todo funciona bien, puedes ejecutar un poco de espacio en el disco con el siguiente comando:

brew cleanup postgresql

... y si se siente realmente valiente, puede eliminar el antiguo directorio de datos de PostgreSQL con el siguiente comando

rm -rf /usr/local/var/postgres9.5/

(Esta respuesta se basa en una excelente publicación de blog https://keita.blog/2016/01/09/homebrew-and-postgresql-9-5/ con algunas adiciones)


Como se sugirió anteriormente, acabo de abrir la aplicación Postgres en mi Mac, Psql clic en Abrir Psql , cerré la ventana de psql , reinicié mi servidor de rieles en mi terminal y estaba funcionando de nuevo, no más errores.

Confía en el elefante: http://postgresapp.com/


Definitivamente fue la respuesta de @Chris Slade la que me ayudó.

Escribí un pequeño script para eliminar esos procesos restantes si fuera útil:

kill_postgres() { if [[ $* -eq "" ]]; then echo "Usage: ''kill_postgres <db_name>'' to kill remaining instances (Eg. ''kill_postgres my_app_development'')" else gksudo echo "Granted sudo" pids="$(ps xa | grep postgres | grep $* | awk ''{print $1}'' | xargs)" if [[ $pids -eq "" ]]; then echo "Nothing to kill" else for pid in "${pids[@]}" do echo "Killing ${pid}" sudo kill $pid echo "Killed ${pid}" done kill_postgres $* fi fi }


Después de una gran cantidad de búsqueda y análisis, encontré una solución si está usando ubuntu, simplemente escriba este comando en su terminal y presione enter

sudo service postgresql restart

Esto reiniciará tu PostgreSQL, espero que esto te ayude.


Detuve el servidor de rieles, ejecuté rake db:migrate y comencé mis rails s .


Este problema se produce cuando postgres no se cierra correctamente. Aquí es cómo resolví este problema en tres simples pasos.

Paso 1: Ve a tu directorio de postgres

Los usuarios de Mac encontrarán esto en /usr/local/var/postgres , otros pueden ver en /usr/var/postgres/ .

Paso 2: .pid archivo .pid ejecutando este comando.

rm postmaster.pid

Paso 3: Reinicia tu servidor

Usuarios de Mac

brew services restart postgresql

Usuarios de Linux

sudo service postgresql restart

Finalmente reinicia tu aplicación y listo.



Localice su archivo postgres que podría estar en /usr/local/var/postgres/ o en /usr/var/postgres/ y luego elimine el archivo postmaster.pid presente en esa carpeta.


Logré resolver el problema siguiendo la respuesta de Chris Slade, pero para reiniciar el servidor tuve que usar los siguientes comandos:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

que encontré here (respuesta de pjammer abajo en la parte inferior)


Los usuarios de Mac con la aplicación Postgres pueden querer abrir la aplicación (resalte la búsqueda de Postgres o busque el icono de elefante en la barra de menú). En ella puede ver una X roja con el mensaje: "Stale postmaster.pid file". Desafortunadamente, una búsqueda de Spotlight no mostrará la ubicación de este archivo. Haga clic en "Configuración del servidor ...", y en el cuadro de diálogo que se abre, haga clic en el botón "Mostrar" para abrir el Directorio de datos. Navegue por una carpeta (para mí era "var-10") y elimine el archivo postmaster.pid .

Vuelva a la aplicación Postgres y haga clic en el botón Inicio. Esa X roja debe convertirse en una marca de verificación verde con el mensaje "Corriendo". Ahora debería poder ejecutar con éxito los comandos de Rails como el rails server en el terminal.


Me encontré con este error después de seguir una brew upgrade en la que se actualizó postgresql. He encontrado exactamente cómo solucionar mi problema de esta gran publicación. Pude hacer que Postgres volviera a funcionar y hasta migrara a todas mis bases de datos existentes. https://coderwall.com/p/ti4amw/how-to-launch-postgresql-after-upgrade


Mi problema estaba en mi archivo application.yml . La url mi base de datos en heroku no estaba usando el puerto 5342. Verifique su heroku config var DATABASE_URL . Asegúrese de que coincidan exactamente con estaba en su application.yml para la base de datos correspondiente.


No tiene que eliminar el archivo postmaster.pid , ya que esto podría estar invitando a la corrupción de datos.

¿Opción? Simplemente kill el proceso (no use kill -9 , solo lo hará un kill normal).

¡Entonces solo reinicia el servidor de Postgres y listo!

Aquí están los pasos para lograrlo:

  1. Localiza y abre el archivo postmaster.pid (el mío está en Mac Sierra)

    vi ~/Library/Application/ Support/Postgres/var-10/postmaster.pid

  2. Copie el PID: es el número en la primera línea del archivo postmaster.pid

  3. Matar el proceso con kill PID , por ejemplo, si mi PID es 381, haré kill 381
  4. Reinicie Postres: si usa brew, los brew services start postgresql . O si usa postgresapp, simplemente haga clic en el botón de start

Para solucionar este tipo de problemas con Postgres y para trabajar con Postgres en Mac OSX , esta es probablemente la MEJOR y la solución MÁS FÁCIL que he encontrado hasta ahora:

http://postgresapp.com/

Solo descarga, instala y sé feliz :)


Podría ser tan simple como un archivo PID obsoleto. Podría estar fallando en silencio porque su computadora no completó completamente el proceso de apagado, lo que significa que postgres no eliminó el archivo PID (ID de proceso).

Postgres utiliza el archivo PID para asegurarse de que solo se ejecuta una instancia del servidor a la vez. Entonces, cuando vuelve a comenzar, falla porque ya existe un archivo PID que le dice a postgres que se inició otra instancia del servidor (aunque no se está ejecutando, simplemente no cerró ni eliminó el PID) .

  1. Para solucionarlo elimina / renombra el archivo PID. Encuentra el directorio de datos postgres. En un MAC que utiliza homebrew es /usr/local/var/postgres/ , otros sistemas puede ser /usr/var/postgres/ .
  2. Para asegurarse de que este sea el problema, consulte el archivo de registro ( server.log ). En las últimas líneas verá:

FATAL: el archivo de bloqueo "postmaster.pid" ya existe
SUGERENCIA: ¿Se está ejecutando otro postmaster (PID 347) en el directorio de datos "/ usr / local / var / postgres"?

  1. Si es así, rm postmaster.pid
  2. Reinicie su servidor. En una mac que utiliza launchctl (con homebrew), los siguientes comandos reiniciarán el servidor.

    launchctl unload homebrew.mxcl.postgresql.plist launchctl load -w homebrew.mxcl.postgresql.plist

    O en nuevas versiones de Brew

    brew services restart postgresql


Probablemente reinició su computadora y se olvidó de iniciar la aplicación Postgres.


Sé que esto es tarde pero podría ayudar a alguien. Yo estaba teniendo el mismo problema. Resulta que tenía dos versiones de postgres 9.1 y 9.5. Desinstalé 9.1 y 9.5 e instalé 9.5 nuevamente y funcionó para mí.


Si encuentra este problema después de realizar una brew upgrade que actualizó postgres a una nueva versión principal (por ejemplo, 9.3.0 a 9.4.0 o superior), haga esto:

La solución de @ dmitrygusev de https://github.com/Homebrew/homebrew/issues/35240

La siguiente guía de migración oficial [Postgresql] ayudó a:

brew switch postgres 9.3.5 # presuming you already installed 9.4.1 pg_dumpall > outputfile launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist mv /usr/local/var/postgres /usr/local/var/postgres.old brew switch postgres 9.4.1 initdb -D /usr/local/var/postgres psql -d postgres -f outputfile

Eso es todo. Compruebe si la importación fue bien, luego elimine las copias de seguridad:

rm outputfile rm -Rf /usr/local/var/postgres.old

El problema aquí es que en una actualización importante de la versión de postgres, es necesario recrear / migrar su base de datos. Y posiblemente directorios chown o manualmente llamar a initdb .

Vea también: ¿Cómo actualizar PostgreSQL de la versión 9.5 a la versión 9.6 sin perder datos?

Algunos otros consejos, que pueden ser útiles, en caso de que no estés usando Homebrew:

Cómo detener el servidor PG manualmente:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log stop

Cómo iniciar el servidor PG manualmente:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start


Tengo el mismo problema después de actualizar mi mac en Osx Movaje.

Encontré esta solución:

Pruebe primero la siguiente línea de comando en su terminal:

brew services restart postgresql

Si nada cambia:

ps aux | grep postgres

Si todavía no cambia nada:

ls -ls | grep post

El último comando para solucionarlo, eliminó el archivo de bloqueo postgres ejecutando desde la raíz:

rm /usr/local/var/postgres/postmaster.pid

y entonces :

brew services restart postgresql

De berziiii: https://github.com/ga-wdi-boston/capstone-project/issues/325

Espero que te ayude :)

Saludos !!


Tuve el mismo problema en producción (todo funcionó en desarrollo), en mi caso, el servidor DB no está en la misma máquina que la aplicación, por lo que finalmente lo que funcionó fue migrar por escrito:

bundle exec rake db:migrate RAILS_ENV=production

y luego reiniciar el servidor y todo funcionó.


Tuve el mismo problema, esta explicación me lo resolvió: http://blog.55minutes.com/2013/09/postgresql-93-brew-upgrade/

El paso clave fue mirar la cola de mi /usr/local/var/postgres/server.log , que me permitió ver cuál era el problema real, que era que no había completado completamente el proceso de actualización de PostgreSQL


Yo tuve el mismo problema. I Verifique la última línea de los archivos de registro de PostgreSQL en /var/log/postgresql . Hubo un parámetro de configuración no reconocido en el archivo /etc/postgresql/9.5/main/postgresql.conf . Comentar la línea de error en postgresql.conf resolvió mi problema.


coloque el host: localhost en el archivo database.yml y ejecute este comando:

rake db:create db:migrate


verifique el archivo postgresql.conf (en ubuntu está en /etc/postgresql/XX/main/postgresql.conf ) y busque la línea que dice:

listen_addresses="localhost"

intente cambiarlo a:

listen_addresses="*"

estaría aceptando cada IP, luego verifique la línea que dice:

port=5432

y verifique si es el mismo puerto de su database.yml, de manera predeterminada en mi postgresql-9.2 use 5433 en lugar de 5432 , no olvide reiniciar el servidor de postgres,

¡Buena suerte!