概述
ssh username1@remote.somewhere.com -L 5432:localhost:5432 -p 222
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隧道所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧