Este tema describe cómo resolver problemas de conexión con una instancia de AnalyticDB for PostgreSQL.
Síntomas
Al conectarse a una instancia de AnalyticDB for PostgreSQL, es posible que reciba el siguiente mensaje de error:
El mensaje de error es ERROR: could not connect to server, con detalles como could not connect to server: Connection timed out. Is the server running on host <host_address> and accepting TCP/IP connections on port 5432?
Causas
Este problema ocurre cuando el cliente no logra comunicarse con la instancia de AnalyticDB for PostgreSQL. Las posibles causas incluyen:
El cliente se conecta desde una dirección IP privada en una red de área local (LAN).
La lista blanca de la instancia de AnalyticDB for PostgreSQL no incluye la dirección IP pública del cliente.
Resolución
-
¿Cómo encuentro la dirección IP del cliente local y la agrego a la lista blanca de la instancia de AnalyticDB for PostgreSQL?
-
Si no conoce la dirección IP pública de su cliente local, siga este procedimiento para obtenerla.
Procedure
-
Agregue temporalmente
0.0.0.0/0a la lista blanca de direcciones IP de su instancia de AnalyticDB for PostgreSQL.Inicie sesión en la consola de AnalyticDB for PostgreSQL.
En la esquina superior izquierda de la consola, seleccione una región.
Busque la instancia que desea gestionar y haga clic en el ID de la instancia.
En el panel de navegación izquierdo, haga clic en Security Controls.
En la pestaña Whitelist Settings, haga clic en Modify a la derecha del grupo de lista blanca predeterminado. Se abrirá el panel Modify Whitelist.
-
En el campo IP Addresses, elimine la entrada predeterminada
127.0.0.1e introduzca0.0.0.0/0.NotaLa entrada
0.0.0.0/0permite el acceso desde cualquier dirección IP y representa un riesgo de seguridad significativo. Elimínela tan pronto como complete la configuración. Haga clic en OK.
-
Conéctese a la instancia de AnalyticDB for PostgreSQL mediante un cliente psql. Si necesita instalar un cliente psql, consulte Client connections. Utilice el siguiente comando:
psql -h yourgpdbaddress.gpdb.rds.aliyuncs.com -p 3432 -d postgres -U gpdbaccountDescripción de los parámetros:
-h: Especifica la dirección del host.
-p: Especifica el número de puerto.
-d: Especifica la base de datos a la que conectarse. El valor predeterminado es
postgres.-U: Especifica el nombre de usuario para la conexión.
Para más opciones, ejecute el comando
psql --help. Dentro de psql, ejecute el comando\?para ver una lista de comandos específicos de psql.
-
Después de conectarse a la base de datos, ejecute el siguiente comando para obtener la dirección IP de su cliente local:
select * from pg_stat_activity;En los resultados, el valor de la columna CLIENT_ADDR corresponde a la dirección IP de su cliente local.
postgres=> select * from pg_stat_activity; datid | datname | procpid | sess_id | usesysid | usename | current_query | waiting | query_start | backend_start | client_addr | client_port | application_name | xact_start | waiting_reason -------+----------+---------+---------+----------+---------+-----------------------------+---------+-------------------------------+--------------------------------+-------------+-------------+------------------+-------------------------------+---------------- 10902 | postgres | 45909 | 254025 | 17239 | test123 | select * from pg_stat_activity; | f | 2019-02-19 14:07:00.37242+08 | 2019-02-19 14:06:26.170467+08 | xxx.xx.xx.x | 31964 | psql | 2019-02-19 14:07:00.37242+08 | (1 row) postgres=> Regrese a la consola de AnalyticDB for PostgreSQL. En la lista blanca de direcciones IP, elimine la entrada
0.0.0.0/0y reemplácela por la dirección IP de su cliente.
-
-