0

这可能是一个非常罕见的用例,但我想做的是:

从 PostgreSQL 数据库连接到 MySQL-Databse(我的网站)以创建一个外部表,该表从 MySQL 数据库中获取网站用户信息。

所以到目前为止我所做的是为 PostgreSQL 安装 MySQL 外部数据包装器 (fdw) 并尝试设置外部服务器。问题是,webhost 只允许 SSH 访问数据库,而 mysql_fdw 只接受额外的 SSL 参数:

{ "ssl_key",        ForeignServerRelationId },
{ "ssl_cert",       ForeignServerRelationId },
{ "ssl_ca",         ForeignServerRelationId },
{ "ssl_capath",     ForeignServerRelationId },
{ "ssl_cipher",     ForeignServerRelationId }

所以我的问题是,我能否以某种方式使用我的 SSH 登录凭据(SSH 用户/密码或密钥对)来生成必要的 SSL 参数?

有谁知道如何实现这一目标?

谢谢和亲切的问候,

迈克尔

4

1 回答 1

0

您几乎可以肯定不是通过 ssh 访问 MySQL。您正在做的是通过 ssh 访问它所在的服务器,然后连接到 MySQL。您可能只是通过运行 mysql 命令行客户端或将端口转发到本地计算机来执行此操作。

所以 - 如果你想从你的 PostgreSQL 服务器连接到 MySQL,它需要可以从互联网上访问。您应该只在防火墙上为 MySQL 的端口打开 PostgreSQL 的 IP 地址。然后,您在 MySQL 上的 GRANT 语句也可以让用户登录到该远程主机名。为这个远程连接设置一个单独的用户。

也可能需要来自 PostgreSQL 连接的已知客户端证书。这将进一步确保访问安全。

现在 - 可能是您使用的服务根本不允许远程 MySQL 访问。在这种情况下,您要么需要设置一个永久的 ssh 隧道(很麻烦,在间歇性连接断开时会导致问题),要么从 mysql 端推送数据。

于 2018-07-20T08:09:12.323 回答