2011-05-11 270 views
0

我無法使用psycopg2在Linux中連接到數據庫。我已經安裝在Linux PostgreSQL和我的代碼是:連接數據庫時出現錯誤

import psycopg2 

def testEgg(): 

    conn = psycopg2.connect("dbname = myDatabase user = postgres port = 5432") 

    cur = conn.cursor() 
    cur.execute("CREATE TABLE egg (num integer, data varchar);") 
    cur.execute("INSERT INTO egg values (1, 'A');") 
    conn.commit() 

    cur.execute("SELECT num from egg;") 
    row = cur.fetchone() 

    print row 

    cur.close() 
    conn.close() 

testEgg() 

而且我得到了錯誤:

psycopg2.OperationalError: FATAL: Ident authentication failed for user "postgres" 

此代碼運行良好,在windows7卻得到了上面提到的linux錯誤。 有什麼我需要做更多的在Linux?任何建議將不勝感激。 謝謝。

回答

0

由於您的代碼,這不是問題,但由於postgres用戶的許可。

您應該創建一個新的用戶來訪問你的數據庫,並替換此:

conn = psycopg2.connect("dbname = myDatabase user = postgres port = 5432") 

通過(由真實用戶名替換<your_user> ...)

conn = psycopg2.connect("dbname = myDatabase user = <your_user> port = 5432") 

要創建一個新的用戶在postgres上,你可以使用'createuser'二進制文件。該文檔可用here

+0

感謝您的信息,但是當我這樣做時,也就是說,當我嘗試創建用戶時,仍然收到「Ident身份驗證失敗」錯誤,代碼爲:#createuser -S -D -R -E testUser createuser:無法連接到數據庫postgres:FATAL:用戶「root」的Ident認證失敗 – 2011-05-11 13:27:21

+0

當您與root用戶連接時,只需磁帶:「su - postgres」。然後,您可以輕鬆地運行createuser ... – 2011-05-11 15:06:43