postgresql dblink_connect超时

hsvhsicv  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(2)|浏览(190)

我试图使用dblink将数据从一个系统移动到另一个系统。两台机器都是RHEL 5.11,都运行postgresql 9.2,都在公司内部网络上,它们之间没有防火墙规则。我正在从我的桌面vpn'ed进入公司内部网络。
调用这两台机器FROMTO。FROM机器安装了dblink作为扩展,而TO机器没有。对于这两台机器,我指定的用户都有一个pg_hba.conf主机条目,其中列出了all作为数据库,0.0.0.0/0作为地址,trust
使用pgadmin3,我可以从我的桌面连接到两台机器,查看/添加/修改两台机器上的数据库。我认为这排除了琐碎的连接问题和权限作为问题的潜在来源。
FROM机器的pgadmin查询窗口中,我执行以下命令:
SELECT dblink_connect('AAA','host=TO dbname=XXX user=postgres password=ZZZ');

  • 或者-
    SELECT dblink_connect('host=TO dbname=XXX user=postgres password=ZZZ');
  • 或者-
    FROM计算机上的psql命令行中输入上述任一变量。
    导致在消息窗格中或命令行中传递此消息:
  • 错误:could not establish connection无法建立连接无法连接到服务器:连接超时服务器是否在主机“TO”(AAA.BBB.CCC.DDD)上运行并接受端口5432上的TCP/IP连接?
  • 错误**

错误:无法建立连接SQL状态:08001
详细信息:无法连接到服务器:连接超时服务器是否运行在主机“TO”(AAA.BBB.CCC.DDD)上并接受TCP/IP

端口5432上的连接?

有什么建议?
更新--尝试将主机名“TO”替换为“localhost”,结果相同。--然而,dblink_connect('dbname_on_FROM');工作。因此基本的dblink功能正在工作。--原始问题仍未解决,因为我想将数据发送到TO机器上的服务器。

lx0bsm1f

lx0bsm1f1#

我不确定你是否能找出问题所在,但我还是要回答。“TO”机器的数据库可能运行在与5432不同的port上。你需要确保你的DB服务器运行的端口和你在“FROM”机器中指定的端口是相同的
如果端口号相同,那么在“FROM”机器中指定这些参数时,hostusernamepassword中一定有错误。

bvpmtnay

bvpmtnay2#

我也有同样的问题。
我的dblink也在同一个示例中。所以,我使用127.0.0.1作为我的host
当我使用5432作为port时,我得到了超时错误。
因此,我使用show port命令获取pg主机的真实的端口。我得到的结果是3002;
当我将dblink_connectport更改为3002时,我可以连接成功;
所以,如果你可以使用一个端口连接到数据库从你的后端;
并在dblink_connect中获得超时错误。
可以,你可以尝试使用另一个端口(通过使用show port查询)连接数据库内部。

相关问题