Antes que nada, tenga en cuenta que he encontrado varias preguntas similares en Stack Overflow y artículos en toda la web, pero ninguna de ellas me ayudó a solucionar mi problema:
- PG Error no pudo conectarse al servidor: Conexión rechazada ¿El servidor se está ejecutando en el puerto 5432?
- PG :: ConnectionBad - no se pudo conectar al servidor: Conexión rechazada
- psql: no se pudo conectar al servidor: conexión rechazada
Ahora, aquí está el problema:
- Tengo una aplicación Rails que funciona de maravilla.
- Con mi colaborador, usamos GitHub para trabajar juntos.
- Tenemos una mastery unamvpsucursales.
- Recientemente actualicé mi gitversión con Homebrew (Mac).
- Usamos Foreman para iniciar nuestra aplicación localmente.
Ahora, cuando intento iniciar la aplicación localmente, aparece el siguiente error:
PG::ConnectionBad at /
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?
Intenté reiniciar mis computadoras varias veces.
También verifiqué el contenido de /usr/local/var/postgres:
PG_VERSION      pg_dynshmem     pg_multixact    pg_snapshots    pg_tblspc       postgresql.conf
base            pg_hba.conf     pg_notify       pg_stat         pg_twophase     postmaster.opts
global          pg_ident.conf   pg_replslot     pg_stat_tmp     pg_xlog         server.log
pg_clog         pg_logical      pg_serial       pg_subtrans     postgresql.auto.conf
Como puede ver, no hay ningún postmaster.pidarchivo allí.
¿Alguna idea de cómo podría solucionar esto?
                    
                        ruby-on-rails
                                ruby
                                postgresql
                                ruby-on-rails-3
                                ruby-on-rails-4
                                
                    
                    
                        Thibaud Clement
fuente
                
                fuente

postgresql.conf?Respuestas:
Lo más probable es que se haya quedado sin batería y su servidor postgresql no se apagó correctamente.
La solución alternativa más sencilla es descargar la aplicación postgresql oficial y ejecutarla: forzará el inicio del servidor ( http://postgresapp.com/ )
fuente
git fetch, tal vez este sea el problema.ejecutar
postgres -D /usr/local/var/postgresy debería ver algo como:FATAL: lock file "postmaster.pid" already exists HINT: Is another postmaster (PID 379) running in data directory "/usr/local/var/postgres"?Luego ejecuta
kill -9 PIDHINTY deberías estar listo para empezar.
fuente
brew services start postgresobrew services restart postgrespodría hacer el trucoLo más probable es que su sistema se apague inesperadamente
Tratar
postgres -D /usr/local/var/postgresEs posible que vea
Entonces intenta
kill -9 PIDejemplo
kill -9 419Y debería comenzar postgres normalmente
fuente
El servidor postgresql podría estar inactivo y la solución podría ser tan simple como ejecutar:
sudo service postgresql startque solucionó el problema para mí.
fuente
Tuve casi el mismo error con mi aplicación Ruby on Rails ejecutando postgresql (mac). Esto funcionó para mí:
fuente
Esto funcionó en mi caso:
brew uninstall postgresql rm -fr /usr/local/var/postgres/ brew install postgresqlfuente
Esto podría deberse al archivo pid creado para postgres que no se ha eliminado debido a un cierre inesperado. Para solucionar este problema, elimine este archivo pid.
Busque el directorio de datos de postgres. En un MAC que usa homebrew
/usr/local/var/postgres/, en otros sistemas podría ser/usr/var/postgres/Elimine el archivo pid ejecutando:
rm postmaster.pidReinicie el postgress. En Mac, ejecute:
fuente
Resolví el problema a través de este comando
pg_ctl -D /usr/local/var/postgres startA veces, puede recibir este error.
pg_ctl: another server might be running; trying to start server anywayEntonces, intente ejecutar el siguiente comando y luego ejecute el primer comando dado anteriormente.
pg_ctl -D /usr/local/var/postgres stopfuente
Si desea reiniciar Postgresql en Linux, debe usar el siguiente comando.
/etc/init.d/postgresql restartfuente
Esto funcionó para mí: ejecutar
sudo lsof -i :<port_number>después de eso, mostrará el PID que está actualmente adjunto al proceso.
Después de esa carrera
sudo kill -9 <PID>Si eso no funciona, pruebe la solución ofrecida por user8376606, ¡definitivamente funcionaría!
fuente
Primero lo intenté
Segundo lo intenté
Así que reinicié mi mac para restaurar todos los puertos y funcionó para mí.
fuente
Para usuarios de Docker : en mi caso, fue causado por un tamaño de imagen de Docker excesivo. Puede eliminar los datos no utilizados usando el
prunecomando:docker system prune --all --force --volumesAdvertencia: según el manual (
docker system prune --help):fuente
En mi caso
Ejecutar => service.msc => Reiniciar
fuente
A menudo encuentro este problema en Windows, la forma en que resolví el problema es Servicio - Haga clic en PostgreSQL Database Server 8.3 - Haga clic en la segunda pestaña "iniciar sesión" - elija la primera línea "la cuenta del sistema local".
fuente
También da el mismo error si simplemente detiene su aplicación PostgreSQL. Solo tienes que empezar de nuevo. (PostgreSQL 11)
fuente
Me enfrenté al mismo problema y no pude iniciar el servidor postgresql y no pude acceder a mi base de datos incluso después de dar la contraseña, y he estado haciendo todas las formas posibles.
Esta solución funcionó para mí,
Para los usuarios de Ubuntu: A través de la línea de comandos, escriba los siguientes comandos:
1.service --status-all (que proporciona una lista de todos los servicios y su estado. Donde "+" se refiere a que se está ejecutando y "-" se refiere a que el servicio ya no se está ejecutando)
compruebe el estado de postgresql, si es "-", escriba el siguiente comando
2.systemctl start postgresql (inicia el servidor de nuevo)
actualice la página de postgresql en el navegador, y funciona
Para los usuarios de Windows:
Busque servicios, donde podemos ver la lista de servicios y haga clic con el botón derecho en postgresql, haga clic en iniciar y el servidor funciona perfectamente bien.
fuente
Paso 1:
cd /etc/postgresql/12/main/abrir archivo llamado
postgresql.confsudo nano postgresql.confagrega esta línea a ese archivo
listen_addresses = '*'luego abra el archivo llamado
pg_hba.confsudo nano pg_hba.confy agregue esta línea a ese archivo
host all all 0.0.0.0/0 md5Permite el acceso a todas las bases de datos para todos los usuarios con una contraseña cifrada.
reinicia tu servidor
sudo /etc/init.d/postgresql restartfuente
Encontré un problema similar cuando intentaba conectar mi aplicación Django a la base de datos PostgreSQL .
Escribí mi
Dockerfilecon instrucciones para configurar el proyecto Django seguido de instrucciones para instalar PostgreSQL y ejecutar el servidor Django en midocker-compose.yml.Definí dos servicios en mi
docker-compose-yml.services: postgres: image: "postgres:latest" environment: - POSTGRES_DB=abc - POSTGRES_USER=abc - POSTGRES_PASSWORD=abc volumes: - pg_data:/var/lib/postgresql/data/ django: build: . command: python /code/manage.py runserver 0.0.0.0:8004 volumes: - .:/app ports: - 8004:8004 depends_on: - postgresDesafortunadamente cada vez que solía correr
docker-compose upmismo error. solía aparecer.Y así es como se definió mi base de datos en Django
settings.py.DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'abc', 'USER': 'abc', 'PASSWORD': 'abc', 'HOST': '127.0.0.1', 'PORT': '5432', 'OPTIONS': { 'client_encoding': 'UTF8', }, } }Entonces, al final hice uso de la
docker-composered, lo que significa que si cambio elhostde mi base de datos a lopostgresque se define como un serviciodocker-compose.yml, haré las maravillas.Entonces, Reemplazar
'HOST': '127.0.0.1'=>'HOST': 'postgres'hizo maravillas por mí.Después del reemplazo, así es como
settings.pyse verá la configuración de su base de datos .DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'abc', 'USER': 'abc', 'PASSWORD': 'abc', 'HOST': 'postgres', 'PORT': '5432', 'OPTIONS': { 'client_encoding': 'UTF8', }, } }fuente
En mi caso, olvidé cambiar la base de datos de postgres (en mi producción) a sqlite3 que estaba usando para el desarrollo.
fuente