Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL外部数据包装器:是否为SSL连接使用SSH参数?_Mysql_Postgresql_Ssl_Ssh_Foreign Data Wrapper - Fatal编程技术网

MySQL外部数据包装器:是否为SSL连接使用SSH参数?

MySQL外部数据包装器:是否为SSL连接使用SSH参数?,mysql,postgresql,ssl,ssh,foreign-data-wrapper,Mysql,Postgresql,Ssl,Ssh,Foreign Data Wrapper,这可能是一个非常罕见的用例,但我想做的是: 从PostgreSQL数据库连接到(我的网站的)MySQL数据库,以创建一个从MySQL数据库获取网站用户信息的外部表 因此,到目前为止,我所做的是为PostgreSQL安装MySQL外部数据包装器(fdw),并尝试设置外部服务器。问题是,webhost只允许SSH访问数据库,而mysql_fdw只接受其他SSL参数: { "ssl_key", ForeignServerRelationId }, { "ssl_cert",

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

从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,则需要从internet访问MySQL。您应该在防火墙上打开MySQL端口的PostgreSQL IP地址。然后,您在MySQL上的GRANT语句也可以让用户登录到该远程主机名。仅此远程连接有一个单独的用户

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

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