Python通过SSH隧道连接到MySQL Server

时间:2020-06-10 17:47:14

标签: python mysql mysql-connector ssh-tunnel

您好,我需要远程连接到托管在家庭服务器上的SQL数据库的帮助。我可以使用终端连接好,但是当我尝试使用pycharm时,出现以下错误:

我遇到了“ remoteaddress不允许的Unix域套接字”错误。 我不确定我应该为Remote_server和Private_server以及最后一个host = ip输入哪个地址。如果有人可以帮忙阐明一些想法,那就太好了!

这里是我的代码: import mysql.connector import sshtunnel

with sshtunnel.SSHTunnelForwarder( ('REMOTE_SERVERIP', 3306), ssh_username='darren', ssh_password='darren', remote_bind_address=('xxxxxxx'), local_bind_address=('0.0.0.0') ) as tunnel: connection = mysql.connector.connect( user='darren', password='darren', host='xxxxxxx', database='SalesFindr', port=3306)

1 个答案:

答案 0 :(得分:0)

根据文档,remote_bind_address() 必须是一个包含 IP 地址和端口的元组

<块引用>

remote_bind_address(元组): 格式 (str, int) 的远程元组表示 隧道远端的IP和端口。

我们只能将 local_bind_address 的“Port”参数留空。

<块引用>

local_bind_address(元组): 格式为 (str, int) 的本地元组表示 隧道本地端的IP和端口。中的两个元素 元组是可选的,所以 ('', 8000)('10.0.0.1', ) 是有效值

       Default: ``('0.0.0.0', RANDOM_PORT)``

因此,在您的代码中,尝试 remote_bind_address=('xxxxxxx', 27018)(或任何代替 27018 的自由端口)