2013-06-18 69 views
0

我安裝了postgresql和(我認爲)pyscopg2。我想用django運行postgresql。我試過命令「createdb mydb」,並且我得到了下面顯示的錯誤信息。我該怎麼辦?爲Django安裝postgresql

無法連接到數據庫的Postgres:

could not connect to server: No such file or directory 
Is the server running locally and accepting 
connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 

我正在運行的Mac OSX 10.8.2。

當我ps auwwx|grep postg型我得到:

robbie   27589 0.0 0.0 2443176 1528 ?? Ss 7:25am 0:00.01 postgres: autovacuum launcher process  
robbie   27588 0.0 0.0 2443044 552 ?? Ss 7:25am 0:00.01 postgres: wal writer process  
robbie   27587 0.0 0.0 2443044 592 ?? Ss 7:25am 0:00.16 postgres: writer process  
robbie   27586 0.0 0.0 2443044 612 ?? Ss 7:25am 0:00.00 postgres: checkpointer process  
robbie   27584 0.0 0.1 2443044 3524 ?? S  7:25am 0:00.02 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log 
robbie   27626 0.0 0.0 2423572  24 s000 S+ 7:36am 0:00.00 grep postg 
robbie   27590 0.0 0.0 2439324 444 ?? Ss 7:25am 0:00.01 postgres: stats collector process 

當我在psql -V I獲取類型:psql (PostgreSQL) 9.1.4 當我which psql型我得到:/usr/bin/psql

+1

由於錯誤消息說..你的postgresql實例運行?你在哪個環境? – kanishk

+0

查看更新的問題。 – user2104778

+0

你有沒有試過通過psql連接?像psql -U用戶databse_name – kanishk

回答

1

您可以在2種不同的方式向PostgreSQL連接:

  1. Unix套接字。它們是文件系統上的特殊文件,可以寫入和讀取。
  2. TCP套接字,其主要目的是允許互聯網協議上的機器間通信,但它可以很好地用於在同一臺機器上連接2個進程。

您收到的錯誤消息告訴您,Django嘗試了方法一,尋找表示Unix套接字的特殊文件,但沒有成功。很可能您的PostgreSQL實例在TCP套接字而不是Unix套接字上偵聽。爲了證實這一點,請嘗試使用psql命令行客戶端這樣的連接到PostgreSQL:

psql -h localhost -U user databse_name 

如果你成功了,那麼你可以配置的Django通過設置HOST鍵連接通過TCP套接字爲localhost您settings.py文件:

DATABASES = { 
    'default': { 
    [...] 
     'HOST': 'localhost', 
    [...] 
    } 
} 
+0

我試過上面的psql代碼,並得到這個錯誤:psql:FATAL:角色「用戶」不存在 – user2104778

+0

你需要適應這個命令到你自己的上下文。用您自己的數據庫名稱替換您創建的PostgreSQL用戶的名稱和database_name的名稱。看起來你是Django和PostgreSQL的初學者。我建議你在嘗試將它連接到Django之前先熟悉一下PostgreSQL:http://www.postgresql.org/docs/9.2/static/tutorial.html –