2012-10-14 135 views
0

我配置了一切,因爲我會在另一個發行版(我是拱門用戶,並且我在桌面機上安裝了opensuse)。Django無法連接到Postgresql on Opensuse

由於:

  • Django和所有它要求(psycopg)
  • PostgreSQL的
  • 創建了一個用戶對我的Django的服務器
  • 創建的數據庫
  • 授予的一切權力對數據庫我的新用戶

然後,當啓動摹執行syncdb開始工作,我得到這個消息,(我已經改變了用戶等等。在這個線程的用戶:問題,密碼:密碼,數據庫:問題,因爲它是與換句話說現實):

FATAL: Ident authentication failed for user "question" 

潛伏後,我得到了主意,改變我的pg_hba.conf文件(位於:/var/lib/pgsql/data/pg_hba.conf)

這是我有:

# TYPE DATABASE  USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
local all    all          trust 
# IPv4 local connections: 
host all    all    127.0.0.1/32   ident 
# IPv6 local connections: 
host all    all    ::1/128     ident 

我的Django的conf文件包含:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'question', 
     'USER': 'question', 
     'PASSWORD': 'password', 
     'HOST': '127.0.0.1', 
     'PORT': '', 
    } 
} 

我不明白我在這裏錯過了什麼,有什麼想法?

+0

您是否確認通過'psql'連接了相同的信息? –

+0

對不起,我沒有,但我不能通過相同的信息通過psql連接(使用此命令:su; su postgres; psql -U問題;我得到:psql:致命:數據庫「問題」不存在,這是鍵入後返回:創建用戶問題;作爲postgres和獲得成功的消息,但是我可以登錄,如果我創建一個數據庫稱爲問題,但我仍然將無法manage.py syncdb) – cp151

+0

你可以嘗試手動插入東西在通過'psql'連接數據庫時?這聽起來像是一個權限問題。 –

回答

1

編輯/var/lib/pgsql/data/pg_hba.conf文件並將方法從trust更改爲md5。這樣Postgres會要求輸入密碼。

還記得重新加載配置文件。

+0

將其更改爲md5並且仍然無效。信任應該接受任何輸入 – cp151

+0

我想你可以通過命令行登錄,對吧? – arturhoo

+0

也請嘗試在'#IPv4本地連接「行中將'ident'更改爲'md5'。 – arturhoo

0

你有沒有試圖改變:

host all    all    127.0.0.1/32   ident 

到:

host all    all    127.0.0.1/32   md5 

看來,您是通過TCP(在pg_hba.confg這麼一線連接 「信任」 不適用)並通過ident進行身份驗證,這需要在pg_ident.conf中輸入。您可能需要「md5」或其他基於密碼的身份驗證選項之一。

+0

更改爲md5,嘗試syncdb時仍然出現同樣的錯誤 – cp151

+0

您是否嘗試過其他方法(密碼,crypt)? – Smith

+0

好吧,更改IPV4後,現在就信任它同步。 Anyidea如何修改它與md5一起使用? – cp151