我有一個Django應用程序,其中應用程序和數據庫駐留在兩個單獨的虛擬機中。我使用Azure。在嘗試連接到單獨的天青VM託管,我正在寫一個PostgreSQL後端:conn = psycopg2.connect("dbname='dbname' host='dnsname'")
,其中主機值下車在Azure門戶網站從這裏:psycopg2.connect因錯誤'連接被拒絕'而失敗(Django app + db託管在單獨的虛擬機上)
我也曾嘗試作爲主機的虛擬IP地址爲。這兩種方法都會失敗,並且出現連接錯誤:could not connect to server: Connection refused. Is the server running on host "myapp.cloudapp.net" (23.132.341.192) and accepting TCP/IP connections on port 5432?
請注意,在此處粘貼錯誤時,我更改了IP地址。
承載postgresql數據庫的Azure虛擬機已將port 5432
添加到其端點。此外,這個postgresql後端所屬的應用程序是一個Django/Python應用程序。我的虛擬機有Ubuntu 14.04。在建立PostgreSQL中,我分別跑兩個應用程序和數據庫的虛擬機以下安裝命令:
sudo apt-get update
sudo apt-get install PostgreSQL postgresql-contrib
sudo apt-get install postgresql-server-dev-all
sudo apt-get install libpq-dev
而且即使都應用和數據庫虛擬機都安裝了上述所有內容,即數據庫本身只在後面的VM中創建。我沒有創建一個單獨的用戶;我不是做: sudo su postgres
psql -d postgres -U postgres
然後
CREATE DATABASE dbname;
如何解決psycopg2.connect
錯誤?如果需要,請索取更多信息。
只是好奇,你有沒有試圖手動訪問這個Postgres實例?這意味着從django機器,你可以手動連接到Postgres? –
如在?我登錄到Django機器,並在shell中編寫'psycopg2.connect(「dbname ='dbname'host ='dnsname'」)',以連接到另一臺機器上的數據庫。如果這就是你的意思,是的,我試過了,不起作用。 –
不,我的意思是打開一個Postgres客戶端並遠程連接到本機,同時嘗試ping並查看是否可以從Django機器到達Postgres機器。 –