在Windows机器上通过SSH隧道使用公钥和密码连接远程PostgreSQL数据库与SQLAlchemy
我在用Windows系统连接远程的Postgres数据库,使用的工具是Navicat。我想用Python(2.7)和SQLAlchemy(0.9)来实现同样的功能,但一直没有成功。
我的Navicat设置大概是这样的:
我尝试在PuTTY里设置隧道,连接到服务器,保持连接打开,然后试着更改IP和端口,但都没有成功。我不确定这些设置是否足够,因为我还有这个公钥和密码短语。所以我想知道,是否有可能在Windows机器上使用Python和SQLAlchemy(当然还有这个好用的PuTTY应用)来连接这个数据库?
谢谢!
1 个回答
8
你可以在创建数据库连接的时候,把服务器和端口号传进去,像这样:
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')