使用带有公钥和密码的SSH隧道连接到SQLAlchemy的远程PostgreSQL数据库,所有这些都来自Windows机器
作者:互联网
所以,我使用Windows通过Navicat等工具连接到远程Postgres数据库.我试图使用Python(2.7)和SQLAlchemy(0.9)来实现相同的功能,但没有成功.
所以,我的Navicat设置如下所示:
我尝试在PuTTY中设置隧道,连接到服务器,保持连接打开并尝试使用IP和端口,但根本没有成功.因为我有这个公钥和密码,所以我不确定是否已经足够了,所以我想知道是否有可能以任何方式使用Python和SQLAlchemy(当然还有这个漂亮的PuTTY应用程序)从Windows机器连接到这个数据库?
谢谢!
解决方法:
您可以将服务器和端口传递给create_engine()语句,ala:
create_engine('postgres://username:password@server:port/database')
http://docs.sqlalchemy.org/en/rel_0_9/dialects/postgresql.html
因此,假设您已首先建立到远程主机的SSH隧道,并将端口转发本地端口1111到远程服务器的端口5432(这是默认的postgres端口),您的连接字符串将类似于:
create_engine('postgres://username:password@localhost:1111/database')
标签:python,postgresql,sqlalchemy,ssh,ssh-tunnel 来源: https://codeday.me/bug/20190830/1769209.html