我们可以在postgresql.config文件中设置多个端口吗?

我们可以在postgresql.config文件中设置多个端口吗?,postgresql,Postgresql,我尝试使用Pg admin从PostgreSQL远程连接MsSQL,但每次我尝试使用dblink_connect函数连接时,我都无法连接,Pg admin会抛出错误: 错误:无法建立连接 详细信息:无法连接到服务器:连接超时(0x0000274C/10060) 服务器是否在主机“xxx.xxx.xxx.xxx”上运行并接受 端口5432上的TCP/IP连接? SQL状态:08001 我尝试过的事情: 在db_link中的连接字符串中指定端口号,即8583 但它仍然抛出如下错误 ERROR:

我尝试使用Pg admin从PostgreSQL远程连接MsSQL,但每次我尝试使用dblink_connect函数连接时,我都无法连接,Pg admin会抛出错误:

错误:无法建立连接
详细信息:无法连接到服务器:连接超时(0x0000274C/10060)
服务器是否在主机“xxx.xxx.xxx.xxx”上运行并接受
端口5432上的TCP/IP连接?
SQL状态:08001
我尝试过的事情:

在db_link中的连接字符串中指定端口号,即8583 但它仍然抛出如下错误

ERROR:  could not establish connection
DETAIL:  server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.
SQL state: 08001
将postgresql.conf文件中的端口从5432更改为8583并重新启动,但仍会引发如下错误

ERROR:  could not establish connection
DETAIL:  could not connect to server: Connection timed out (0x0000274C/10060)
    Is the server running on host "xxx.xxx.xxx.xxx" and accepting
    TCP/IP connections on port 5432?
SQL state: 08001

因此,我可以在
postgresql.conf
文件中有多个端口号,希望它能以这种方式工作。

您不能使用
dblink
从postgresql连接到Microsoft SQL Server,这仅用于连接到远程postgresql数据库

您应该在PostgreSQL中使用和定义外部表,但这仅适用于读取数据

如果需要写入Microsoft SQL Server数据库,您有几个选项:

  • 您可以从客户端代码而不是从PostgreSQL数据库写入Microsoft SQL Server数据库;这可能是最可行的解决办法

  • 您可以编写一个PL/Python或PL/Perl存储过程,并从那里写入远程数据库


因此,仅通过dblink连接失败,但通过
psql
连接到同一主机和端口,pgAdmin或任何其他SQL客户端都能正常工作?是的,更正@a_horse_和\u no_名称这是从PostgreSQL连接Microsoft SQL的唯一选择?是的。但这是一个非常好的选择(除非您需要写入远程数据库,否则您会丢失)。好的,谢谢您的分享。无论如何,如果您可以分享关于如何写入远程数据库的任何参考资料,这将是非常棒的。谢谢。您可以扩展tds_fdw以支持编写,但请注意,这并非小事。您可以从客户端代码而不是从PostgreSQL数据库写入Microsoft SQL Server数据库;这可能是最可行的解决办法。您可以编写一个PL/Python或PL/Perl存储过程,并从那里写入远程数据库。