我已经找到了大量有关如何使用python连接到远程服务器上的数据库的资源。我需要从另一台远程服务器连接到远程服务器上的数据库。
我正在尝试使用psycopg2
和SSHTunnelForwarder
来做到这一点:
import psycopg2
from sshtunnel import SSHTunnelForwarder
with SSHTunnelForwarder(('<REMOTE SERVER>', 22),
ssh_username='ubuntu',
ssh_pkey='~/.ssh/my_private_key',
remote_bind_address=('<REMOTE SERVER>', 22)):
conn = psycopg2.connect(database='<database name>',
user='<username>',
password='<password>',
host='<REMOTE DATABASE SERVER>',
port=5432)
cursor = conn.cursor()
这挂起,什么也不做。
我非常确定问题是我对remote_bind_address
的重视。我知道通常应该指向远程服务器上的数据库端口,但是由于我的数据库位于另一台远程服务器上,因此我不确定如何填充此值以使其起作用。