Postgresql Postgres SSLMode值“;要求;未使用外部数据包装编译SSL支持时无效

Postgresql Postgres SSLMode值“;要求;未使用外部数据包装编译SSL支持时无效,postgresql,Postgresql,我正试图使用外部数据包装器连接到远程服务器,以便在数据库之间传输一些数据,但keey获得的“SSLMode Value”要求“未编译SSL支持时无效”。以下是我正在运行的代码片段: CREATE SERVER remote FOREIGN DATA WRAPPER postgres_fdw OPTIONS(dbname '...', host '...', port '...', sslmode 'require'); CREATE USER MAPPING FOR USER SERVER r

我正试图使用外部数据包装器连接到远程服务器,以便在数据库之间传输一些数据,但keey获得的“SSLMode Value”要求“未编译SSL支持时无效”。以下是我正在运行的代码片段:

CREATE SERVER remote FOREIGN DATA WRAPPER postgres_fdw
OPTIONS(dbname '...', host '...', port '...', sslmode 'require');

CREATE USER MAPPING FOR USER SERVER remote
OPTIONS (user '...', password '...');

CREATE FOREIGN TABLE remote.accounts (
  ...
);

SELECT * FROM remote.accounts;
详细信息:未在中编译SSL支持时,sslmode值“require”无效


我尝试使用
“sslmode=require”
连接到
psql
——但这似乎没有帮助。在创建服务器时,我还将
sslmode
作为一个标志。我连接的postgres实例在Heroku上。如果我连接到远程服务器上的其他数据库,但从本地数据库失败,则会运行查询。如何修复未编译的SSL支持

本地PostgreSQL实例使用本地
libpq
库连接到远程实例

如果在编译时,该库已配置了
--with openssl
(传递到postgres源代码树的顶级
/configure
脚本的选项),则它将动态链接到
openssl
库,并添加用于加密会话的调用站点

另一方面,如果未配置此选项,则生成的
libpq
根本不具备任何SSL功能,并且该库不可能连接到需要SSL的远程服务器

根据错误消息,您处于第二种情况

解决此问题的唯一方法是将已安装的
libpq
库替换为另一个使用SSL支持编译的库,这也意味着您的系统上安装了OpenSSL。您可以自己编译它,也可以根据自己的喜好通过软件包安装它。一般来说,PostgreSQL的预编译版本现在倾向于启用SSL支持

即使libpq源代码在服务器的源代码中,也可以单独编译它们并独立于其他库使用该库。
有一个问题:

本地PostgreSQL实例使用本地
libpq
库连接到远程实例

如果在编译时,该库已配置了
--with openssl
(传递到postgres源代码树的顶级
/configure
脚本的选项),则它将动态链接到
openssl
库,并添加用于加密会话的调用站点

另一方面,如果未配置此选项,则生成的
libpq
根本不具备任何SSL功能,并且该库不可能连接到需要SSL的远程服务器

根据错误消息,您处于第二种情况

解决此问题的唯一方法是将已安装的
libpq
库替换为另一个使用SSL支持编译的库,这也意味着您的系统上安装了OpenSSL。您可以自己编译它,也可以根据自己的喜好通过软件包安装它。一般来说,PostgreSQL的预编译版本现在倾向于启用SSL支持

即使libpq源代码在服务器的源代码中,也可以单独编译它们并独立于其他库使用该库。
有一个问题:

RPostgreSQL代码显示了一个参数,使用\u SSL,如果未定义它()将导致错误消息()。如何定义/确定USE_SSL?RPostgreSQL代码显示参数USE_SSL,如果未定义()将导致错误消息()。如何定义/确定使用SSL?