繁体   English   中英

Python 通过 SSH 隧道连接到 MySQL 服务器

[英]Python connecting to MySQL Server through SSH tunneling

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

我收到“Unix domain sockets not allowed for remoteaddress”错误。 我不确定我应该为 Remote_server 和 Private_server 以及最后一个主机 = 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)

根据文档, remote_bind_address()必须是由 IP 地址和端口组成的元组

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM