2017-12-18 97 views
0

我目前真的很需要測試我的軟件的postgres 9.1數據庫。我沒有創建這個數據庫,但我以前用postgres作爲用戶和密碼登錄。但是,現在我不可能在運行數據庫的同一臺機器上創建連接,即使使用pgadmin3也是如此。我嘗試了百萬組合在PG-hba.conf,如:即使使用'信任'設置也無法連接到postgres數據庫

host all    all    192.168.10.178/32   trust 

host all    all    0.0.0.0/0     trust 

host example   postgres  192.168.10.178/32  trust 

host all    all    ::1/128     md5 

IP4服務器的ADRESS爲192.168 .10.178,子網掩碼是255.255.245.0。該機器運行Windows Server 2008,我用管理員權限登錄(如果有的話)。在postgresql.conf中以下行設置:

listen_addresses = '*'  # what IP address(es) to listen on; 
        # comma-separated list of addresses; 
        # defaults to 'localhost', '*' = all 
        # (change requires restart) 
port = 5432    # (change requires restart) 

我不熟悉,在所有的Postgres和我讀到現在爲止大約pg_hba.conf中沒有得到我任何進一步。我希望至少從上面的第二個設置它會讓我登錄沒有密碼不關心用戶或主機IP。但不知何故,pgAdmin的3仍然要求輸入密碼的用戶Postgres的,如果我使用'Postgres的,它只是告訴我:

password-authentication for user 'postgres' failed 

請,誰能告訴我什麼是地獄我應該怎麼辦?

+1

不只是*什麼*你有hba文件,還*以什麼順序* - 請顯示'pg_hba.conf'上的確切內容 –

+0

另外,你在更改配置文件後運行了'pg_ctl reload'嗎? –

回答

0

這是我的設置是這樣的:

# TYPE DATABASE  USER   ADDRESS     METHOD 

# IPv4 local connections: 
host all    all    nnn.nn.nnn.nnn/32  trust 
host all    all    127.0.0.1/32   trust 
# IPv6 local connections: 
host all    all    ::1/128     trust 

(顯然n個的是數字我已經從我的實際IP地址隱藏起來。)

正如@VaoTsun說,確保線按照你希望它們應用的順序,因爲匹配的第一個將被使用。因此,如果例如你有samenet設置爲md5,那麼下一行你有samehost設置爲trust,你會得到md5,因爲samenet是有效的爲您的連接。

但是,我強烈懷疑問題是IPv6連接條目要麼被註釋掉,要麼被設置爲md5(或兩者)。我不知道爲什麼,但我知道在我們的許多2008服務器上,它將使用IPv6設置而不是IPv4。也許這取決於是否在機器上啓用了IPv6。根據我上面的設置設置該條目,我敢打賭,這將做到這一點。

此外,除非您已經配置PGAdmin來保存您的密碼,否則即使trust設置正確,它仍會要求您輸入密碼。只需按Enter鍵而不輸入密碼,它應該允許你進入。(假設你的設置已被正確設置。)

+0

它確實是缺少的IPv6配置行。非常感謝。 :) – flixe

相關問題