【问题标题】:How to connect to a database through a Paramiko Tunnel (or similar package)如何通过 Paramiko Tunnel(或类似包)连接到数据库
【发布时间】:2011-05-01 15:20:16
【问题描述】:

我在 paramiko 中设置适当的隧道以启用数据库连接时遇到严重问题。我已经查看了示例“forward.py”,但我不明白如何将数据库连接链接到它。任何指针都将不胜感激。

我想我需要以下东西:

t = paramiko.Transport((hostname, port))
t.connect(username=username, password=password, hostkey=hostkey) 
c = paramiko.Channel(t)

#something about assigning a local port to this connection

connection = psycopg2.connect(connectionstring)
#and do my stuff

connection.close()
c.close()
t.close()

【问题讨论】:

    标签: python database-connection paramiko tunneling


    【解决方案1】:

    我在让 paramiko 工作时也遇到了同样严重的问题,但最终使用另一个库 (sshtunnel) 来封装和简化 paramiko 的隧道。

    您可以在另一个类似问题中查看my answer,并提供一些示例代码来使用它。

    【讨论】:

      【解决方案2】:

      如果您使用 forward.py 脚本创建了 ssh 隧道;您可以像这样使用 ssh 隧道到 connect 到 postgresql:

      conn = psycopg2.connect(database="test", host="localhost", port=<forward_port>)
      

      【讨论】:

      • 我知道这是对的,我只是没有正确使用 forward.py。
      • 原来我不知道为什么我认为这适合我的用途。对我来说,通过外部程序 ssh 维护一个隧道比尝试在 Python 中设置它更好。
      猜你喜欢
      • 2019-04-05
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      • 2011-06-10
      相关资源
      最近更新 更多