python – Psycopg2访问远程主机上的PostgreSQL数据库,无需手动
发布时间:2020-12-16 21:31:33 所属栏目:Python 来源:网络整理
导读:用于访问远程服务器上的数据库的标准过程PostgreSQL首先创建一个ssh隧道,如下所示: ssh username1@remote.somewhere.com -L 5432:localhost:5432 -p 222 然后从另一个shell在python中运行我的查询: conn = psycopg2.connect("host=localhost" + " dbname="
用于访问远程服务器上的数据库的标准过程PostgreSQL首先创建一个ssh隧道,如下所示:
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将被重定向到远程主机,阻止主线程的执行. 解决方法
你也可以使用
sshtunnel,短而甜:
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(...) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |