我试图使用dblink将数据从一个系统移动到另一个系统。这两台机器都是RHEL 5.11,都运行postgresql 9.2,都在公司内部网络上运行,两者之间没有防火墙规则。我正在从我的桌面vpn‘进入公司的内部网络。
叫这两台机器FROM和TO。FROM机器已安装dblink作为扩展,而TO计算机则不安装。对于这两台机器,我指定的用户都有一个pg_hba.conf主机条目,其中列出了db的all、地址的0.0.0.0/0和trust。
使用pgadmin3,我可以从我的桌面连接到这两台机器,请参阅/添加/修改这两台机器上的数据库。我认为这排除了简单的连接问题和权限作为问题的潜在来源。
在pgadmin机器的FROM查询窗口中,我执行以下操作:
SELECT dblink_connect('AAA','host=TO dbname=XXX user=postgres password=ZZZ');
-或-
SELECT dblink_connect('host=TO dbname=XXX user=postgres password=ZZZ');
-或-
以上任何一种输入都是在psql计算机上的FROM命令行中输入的。
在消息窗格或命令行中传递此消息的结果:
-错误:无法建立连接细节:无法连接到服务器:连接超时是服务器在主机" to“(AAA.BBB.CCC.DDD)上运行并在端口5432上接受TCP/IP连接吗? *错误* 错误:无法建立连接SQL状态: 08001 详细信息:无法连接到服务器:连接超时是在主机" to“(AAA.BBB.CCC.DDD)上运行并接受TCP/IP的服务器。 在5432端口转接?
有什么建议吗?
Update --尝试用"localhost“替换主机名"TO”,结果相同。-然而,dblink_connect('dbname_on_FROM');工作。因此,基本的dblink功能就是功能。--原来的问题仍未解决,因为我想把数据传送到机器上的服务器上。
发布于 2016-08-04 04:55:13
我不知道你是否能解决这个问题,但我还是要回答。"TO“机器的数据库可能运行在与5432不同的port上。您需要确保您的DB Server正在运行的端口以及您在"FROM“机器中指定的端口是相同的。
如果端口号相同,那么在"FROM“机器中指定这些参数时,host、username或password必须出错。
https://stackoverflow.com/questions/37536278
复制相似问题