मुझे नहीं पता कि यह मददगार हो सकता है, लेकिन मुझे SSH टनलिंग के माध्यम से भी PostgreSQL डेटाबेस से जुड़ना पड़ा। मैं कुछ संशोधनों के साथ आपके कोड का उपयोग करके कनेक्ट करने में सफल रहा:
import psycopg2
from sshtunnel import SSHTunnelForwarder
try:
with SSHTunnelForwarder(
('<server ip address>', 22),
#ssh_private_key="</path/to/private/ssh/key>",
### in my case, I used a password instead of a private key
ssh_username="<server username>",
ssh_password="<mypasswd>",
remote_bind_address=('localhost', 5432)) as server:
server.start()
print "server connected"
params = {
'database': '<dbname>',
'user': '<dbusername>',
'password': '<dbuserpass>',
'host': 'localhost',
'port': server.local_bind_port
}
conn = psycopg2.connect(**params)
curs = conn.cursor()
print "database connected"
except:
print "Connection Failed"
server.start()
जोड़ने के बाद , कोड अच्छी तरह से काम किया। इसके अलावा, 'डेटाबेस कनेक्टेड' के बाद उल्टे अल्पविराम गायब थे। मुझे आशा है कि यह आपके लिए उपयोगी हो सकता है, अपना कोड साझा करने के लिए धन्यवाद!