2010-10-28 45 views
0

我在paramiko中設置適當的隧道以啓用數據庫連接存在嚴重問題。我已經查看了'forward.py'這個例子,但是我不瞭解如何將數據庫連接鏈接到它。任何指針將不勝感激。如何通過Paramiko隧道(或類似包)連接到數據庫

我想我需要的東西如下:

t = paramiko.Transport((hostname, port)) 
t.connect(username=username, password=password, hostkey=hostkey) 
c = paramiko.Channel(t) 

#something about assigning a local port to this connection 

connection = psycopg2.connect(connectionstring) 
#and do my stuff 

connection.close() 
c.close() 
t.close() 

回答

2

如果您已創建使用forward.py腳本你的ssh隧道;你可以使用SSH隧道來connect到PostgreSQL是這樣的:

conn = psycopg2.connect(database="test", host="localhost", port=<forward_port>) 
+0

我知道這是對的,我只是沒有正確使用forward.py。 – mvrak 2010-10-28 01:54:11

+0

原來我不確定爲什麼我認爲這適合我的用途。通過外部程序ssh維護一個隧道比試圖在Python中設置隧道更好。 – mvrak 2010-11-03 18:48:01

0

我不得不讓的paramiko工作過同樣嚴重的問題,但最終與包裹和簡化的paramiko的隧道另一個庫(sshtunnel)做這件事。

您可以通過一些示例代碼在另一個類似的問題中檢查my answer以使用它。

相關問題