Python 使用sshtunnel连接到远程mysql数据库

Python 使用sshtunnel连接到远程mysql数据库,python,mysql,ssh-tunnel,Python,Mysql,Ssh Tunnel,我想用Python tkinter创建一个GUI来查询远程MySQL数据库。 我需要建立一个ssh隧道来连接数据库。 我可以通过以下方式运行: ssh -L 23235:remote.server.address:3306 user@provider.com 在候机楼。它提示我输入密码,一旦输入,隧道允许我从单独的终端或使用诸如dbeaver之类的客户端连接到数据库 我使用sshtunnel中的SSHTunnelForwarder尝试了以下代码: from sshtunnel import S

我想用Python tkinter创建一个GUI来查询远程MySQL数据库。 我需要建立一个ssh隧道来连接数据库。 我可以通过以下方式运行:

ssh -L 23235:remote.server.address:3306 user@provider.com
在候机楼。它提示我输入密码,一旦输入,隧道允许我从单独的终端或使用诸如dbeaver之类的客户端连接到数据库

我使用sshtunnel中的SSHTunnelForwarder尝试了以下代码:

from sshtunnel import SSHTunnelForwarder
from time import sleep

with SSHTunnelForwarder(
    ('remote.server.address', 3306),
    ssh_username="user@provider.com",
    ssh_password="pAssWorD",
    remote_bind_address=('127.0.0.1', 23235)
) as server:

    print(server.local_bind_port)
    while True:
        # press Ctrl-C for stopping
        sleep(1)

print('FINISH!')
这似乎是挂起的,闪烁的光标,当我想停止进程时,我收到以下消息:

^CTraceback (most recent call last):
  File "databasegui.py", line 11, in <module>
    print(server.local_bind_port)
AttributeError: 'NoneType' object has no attribute 'local_bind_port'
^CTraceback(最近一次通话最后一次):
文件“databasegui.py”,第11行,在
打印(服务器本地绑定端口)
AttributeError:“非类型”对象没有“本地绑定端口”属性
只是又试了一次,离开了航站楼很长一段时间。在不中断^C进程的情况下,我得到了以下输出:

2020-09-28 08:42:18,265| ERROR   | Could not connect to gateway cedar-mysql-vm.int.cedar.computecanada.ca:3306 : 110
Traceback (most recent call last):
  File "databasegui.py", line 4, in <module>
    with SSHTunnelForwarder(
  File "/home/m3coordinator/anaconda3/lib/python3.8/site-packages/sshtunnel.py", line 1552, in __enter__
    self.start()
  File "/home/m3coordinator/anaconda3/lib/python3.8/site-packages/sshtunnel.py", line 1293, in start
    self._raise(BaseSSHTunnelForwarderError,
  File "/home/m3coordinator/anaconda3/lib/python3.8/site-packages/sshtunnel.py", line 1100, in _raise
    raise exception(reason)
sshtunnel.BaseSSHTunnelForwarderError: Could not establish session to SSH gateway
2020-09-28 08:42:18265 |错误|无法连接到网关cedar mysql vm.int.cedar.computecanada.ca:3306:110
回溯(最近一次呼叫最后一次):
文件“databasegui.py”,第4行,在
与SSHTunnelForwarder(
文件“/home/m3coordinator/anaconda3/lib/python3.8/site packages/sshtunnel.py”,第1552行,输入__
self.start()
文件“/home/m3coordinator/anaconda3/lib/python3.8/site packages/sshtunnel.py”,第1293行,在开始处
自升式(基准推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力推力,
文件“/home/m3coordinator/anaconda3/lib/python3.8/site packages/sshtunnel.py”,第1100行,在
引发异常(原因)
sshtunnel.BaseSSHTunnelForwarderError:无法建立到SSH网关的会话
如果您有任何建议,我们将不胜感激。

看看这是否有帮助。。。。