本文介绍如何解决AnalyticDB PostgreSQL版无法连接的问题。

问题现象

在使用客户端连接AnalyticDB PostgreSQL版实例时,弹窗报错。如下图所示:

Could not connect to server

问题原因

报错的IP与AnalyticDB PostgreSQL版实例无法互相访问。可能原因如下:

  • 报错的IP是用户局域网的IP。
  • 未设置AnalyticDB PostgreSQL版实例的IP白名单。

解决方式

如何查看本地客户端IP并设置ADB PG实例白名单?

由于网络环境复杂多样,用户可能无法正确地找到本地客户端的IP地址来设置实例白名单。本文介绍如何查看本地客户端的IP。

操作步骤
  1. 0.0.0.0/0添加到AnalyticDB PostgreSQL版实例的白名单,具体操作如下:
    1. 登录云原生数据仓库AnalyticDB PostgreSQL版控制台
    2. 在控制台左上角,选择实例所在地域。
    3. 找到目标实例,单击实例ID。
    4. 在左侧导航栏中,单击数据安全性
    5. 白名单设置页签中,单击default白名单分组后的修改,进入修改白名单分组面板。
    6. 删除组内白名单中的默认白名单127.0.0.1,写入白名单地址0.0.0.0/0
      说明 0.0.0.0/0允许任何IP访问数据库,将会引入较高的安全风险,请尽快删除。
    7. 单击确定,完成白名单设置。
  2. 使用客户端连接到AnalyticDB PostgreSQL版实例,请参见客户端连接下载安装psql客户端,使用如下连接语句连接数据库:
    psql -h yourgpdbaddress.gpdb.rds.aliyuncs.com -p 3432 -d postgres -U gpdbaccount

    其中,各个参数的定义如下:

    • -h:指定主机地址。
    • -p:指定端口号。
    • -d:指定数据库(默认的数据库是 postgres),
    • -U:指定连接的用户。
    • 可以通过psql --help查看更多选项。在 psql 中,可以执行\?查看更多 psql 中支持的命令。
  3. 进入数据库后,在数据库的SQL命令行窗口中运行如下命令,查询客户端的IP地址。
    select * from pg_stat_activity;
    查询结果的CLIENT_ADDR字段即为客户端的IP地址。
  4. AnalyticDB PostgreSQL版控制台中,将白名单0.0.0.0/0删除,输入上个步骤查询到的IP地址,即可正常访问数据库。