这可能是一个非常罕见的用例,但我要做的是:
从PostgreSQL数据库连接到MySQL数据库(我的网站(,创建一个从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用户/pw或密钥对(来生成必要的SSL参数吗?
有人知道如何做到这一点吗?
谢谢并致以亲切的问候,
Michael
您几乎肯定不会通过ssh访问MySQL。您正在做的是通过ssh访问它所在的服务器,然后连接到MySQL。您可以通过运行mysql命令行客户端或将端口转发到本地机器来完成此操作。
因此,如果你想从PostgreSQL服务器连接到MySQL,它需要可以从互联网访问。您应该只打开PostgreSQL的IP地址作为MySQL在防火墙上的端口。然后,MySQL上的GRANT语句也可以让用户登录到该远程主机名。请为该远程连接指定一个单独的用户。
还可能需要PostgreSQL连接中的已知客户端证书。这将进一步确保访问安全。
现在,您所使用的服务可能根本不允许远程MySQL访问。在这种情况下,您要么需要设置一个永久的ssh隧道(很麻烦,当连接间歇性中断时可能会导致问题(,要么从mysql端推送数据。