我有一个远程主机上可用的数据库。当我使用putty和SSH时,我可以访问它。数据库本身没有密码。只有SSH连接有密码。但是,当我尝试使用Python连接时,它会要求密码。我对Postgres和Paramiko都不熟悉。
这是我尝试过的:
import psycopg2
import paramiko
import time
t = paramiko.Transport(('xxx.com', 22))
t.connect(username="xxx", password='xxx')
c = paramiko.Channel(t)
conn = psycopg2.connect("dbname='xxx'")
curs = conn.cursor()
sql = "select * from xxx"
curs.execute(sql)
rows = curs.fetchall()
print(rows)
我尝试的另一种方法是:
import os, psycopg2
os.system("ssh xxx@xxx.com -fNL 5432:localhost:5432 -p 22")
while True:
try:
conn = psycopg2.connect("dbname='xxx'")
curs = conn.cursor()
sql = "select * from xxx"
curs.execute(sql)
rows = curs.fetchall()
print(rows)
except:
print "I am unable to connect to the database"
这给了我一个“无法请求本地转发”的错误。 是否有其他方法可以解决这个问题? 我有一个装有Python 2.7的Windows 7(x64)机器。请帮帮我。谢谢。