您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – Psycopg2访问远程主机上的PostgreSQL数据库,无需手动打开ssh隧道

5b51 2022/1/14 8:20:19 python 字数 2238 阅读 440 来源 www.jb51.cc/python

用于访问远程服务器上的数据库的标准过程PostgreSQL首先创建一个ssh隧道,如下所示: ssh username1@remote.somewhere.com -L 5432:localhost:5432 -p 222 然后从另一个shell在python中运行我的查询: conn = psycopg2.connect("host=localhost" + " dbname=" +

概述

ssh username1@remote.somewhere.com -L 5432:localhost:5432 -p 222

然后从另一个shell在python中运行我的查询

conn = psycopg2.connect("host=localhost" + " dbname=" +
                         conf.dbname + " user=" + conf.user + 
                         " password=" + conf.password)

cur = conn.cursor()

cur.execute(query)

创建隧道后,这段python代码可以很好地工作.但是,我希望psycopg2已经打开SSH隧道或“以某种方式”到达远程数据库而无需在我的localhost上重定向它.

用psycopg2可以做到这一点吗?

否则可能在我的python代码中打开ssh隧道?

如果我使用:

os.system("ssh username1@remote.somewhere.com -L 5432:localhost:5432 -p 222")

shell将被重定向到远程主机,阻止主线程的执行.

from sshtunnel.sshtunnel import SSHTunnelForwarder
PORT=5432
with SSHTunnelForwarder((REMOTE_HOST,REMOTE_SSH_PORT),ssh_username=REMOTE_USERNAME,ssh_password=REMOTE_PASSWORD,remote_bind_address=('localhost',PORT),local_bind_address=('localhost',PORT)):
    conn = psycopg2.connect(...)

总结

以上是编程之家为你收集整理的python – Psycopg2访问远程主机上的PostgreSQL数据库,无需手动打开ssh隧道全部内容,希望文章能够帮你解决python – Psycopg2访问远程主机上的PostgreSQL数据库,无需手动打开ssh隧道所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶