postgresql - puerto - "Psql: no se pudo conectar al servidor: conexión rechazada" Error al conectarse a la base de datos remota
pgadmin iii en español (6)
Asegúrese de que la configuración se aplique correctamente en el archivo de configuración.
vim /etc/postgresql/x.x/main/postgresql.conf
Intente lo siguiente para ver los registros y encontrar su problema.
tail /var/log/postgresql/postgresql-x.x-main.log
Estoy tratando de conectarme a una base de datos postgres instalada en un servidor remoto usando el siguiente comando:
psql -h host_ip
-U db_username
-d db_username
Este es el error que se produce:
psql: no se pudo conectar al servidor: conexión rechazada ¿Se está ejecutando el servidor en el host "" y está aceptando conexiones TCP / IP en el puerto 5432?
- La versión instalada de Postgres es 9.4.
- Sistema operativo host: Ubuntu 15.04
- Sistema operativo cliente: Centos 7
Ya probé lo siguiente, pero el problema sigue sin resolverse:
- Editado el archivo
pg_hba.conf
para incluir
alojar todos todos 0.0.0.0/0 md5
- Edité ''postgresql.conf'' y cambié el parámetro de escucha a
listen_addresses = ''*''
- Servicio de postgres reiniciado.
- Firewall y iptables deshabilitados en host y cliente.
- Lo comprobé ejecutando el comando psql localmente y funcionó.
- Probé la segunda solución dada en esta question . Ejecutar
nmap
me dio el siguiente resultado:
Starting Nmap 6.47 ( http://nmap.org ) at 2015-09-07 18:08 IST Nmap scan report for 10.17.250.250 Host is up (0.0000040s latency). Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http
Me estoy perdiendo de algo. Espero que alguien pueda ayudar.
Compruebe el puerto definido en postgresql.conf
. Mi instalación de postgres 9.4 usa el puerto 5433
lugar de 5432
Creo que estás usando el nombre de la máquina en lugar de la dirección IP del host.
Recibí el mismo error cuando intenté con el nombre de la máquina. Porque, está permitido solo cuando el cliente y el host están bajo la misma red y tienen el mismo sistema operativo instalado.
En mi caso, no cambié la política de seguridad predeterminada de Azure en el portal de administración. El original es el puerto 22 permitido y el resto está denegado. Mientras agrego el puerto 5432, todo se vuelve bueno.
He luchado con esto cuando intento conectarme de forma remota a una nueva instalación de PostgreSQL en mi Raspberry Pi. Aquí está el desglose completo de lo que hice para resolver este problema:
Primero, abra el archivo de configuración de PostgreSQL y asegúrese de que el servicio escuche fuera de localhost.
sudo [editor] /etc/postgresql/[version]/main/postgresql.conf
nano
, pero puede usar el editor de su elección, y mientras tengo instalada la versión 9.1
, ese directorio será para la versión que tenga instalada.
Busque en la sección titulada ''Conexiones y autenticación''. La primera configuración debería ser ''listen_addresses''
, y podría verse así:
#listen_addresses = ''localhost'' # what IP address(es) to listen on;
Los comentarios a la derecha dan buenas instrucciones sobre cómo cambiar este campo, y el uso del ''*''
sugerido para todos funcionará bien.
Tenga en cuenta que este campo está comentado con #. Según los comentarios, el valor predeterminado será ''localhost'', por lo que no basta con cambiar el valor a ''*''
, también debe descomentar la configuración eliminando el #
inicial.
Ahora debería verse así:
listen_addresses = ''*'' # what IP address(es) to listen on;
También puede verificar la siguiente configuración, ''puerto'', para asegurarse de que se está conectando correctamente. 5432 es el valor predeterminado, y es el puerto al que psql intentará conectarse si no especifica uno.
Guarde y cierre el archivo, luego abra el archivo de configuración de autenticación de cliente, que se encuentra en el mismo directorio:
sudo [editor] /etc/postgresql/[version]/main/pg_hba.conf
Recomiendo leer el archivo si desea restringir el acceso, pero para las conexiones abiertas básicas, saltará a la parte inferior del archivo y agregará una línea como esta:
host all all all md5
Puede presionar tabulador en lugar de espacio para alinear los campos con las columnas existentes si lo desea.
Personalmente, en vez de eso agregué una fila que se veía así:
host [database_name] pi 192.168.1.0/24 md5
Esto restringe la conexión a un solo usuario y solo a una base de datos en la subred de la red de área local.
Una vez que haya guardado los cambios en el archivo, deberá reiniciar el servicio para implementar los cambios.
sudo service postgresql restart
Ahora puede verificar que el servicio esté escuchando abiertamente en el puerto correcto usando el siguiente comando:
sudo netstat -ltpn
Si no lo ejecuta como elevado (usando sudo
), no le dirá los nombres de los procesos que escuchan en esos puertos.
Uno de los procesos debe ser Postgres, y la dirección local debe estar abierta (0.0.0.0) y no restringida únicamente al tráfico local (127.0.0.1). Si no está abierto, deberá revisar los archivos de configuración y reiniciar el servicio. Puede confirmar de nuevo que el servicio está escuchando en el puerto correcto (el valor predeterminado es 5432
, pero su configuración podría ser diferente).
Finalmente, podrá conectarse exitosamente desde una computadora remota usando el comando:
psql -h [server ip address] -p [port number, optional if 5432] -U [postgres user name] [database name]
cd /etc/postgresql/9.x/main/
abrir archivo llamado postgresql.conf
sudo vi postgresql.conf
agrega esta linea a ese archivo
listen_addresses = ''*''
a continuación, abra el archivo llamado pg_hba.conf
sudo vi pg_hba.conf
y agrega esta linea a ese archivo
host all all 0.0.0.0/0 md5
Permite el acceso a todas las bases de datos para todos los usuarios con una contraseña encriptada.
reinicia tu servidor
sudo /etc/init.d/postgresql restart