2015-09-22 32 views
1

如何在golang的sql.Open命令中包含postgresql用戶名和密碼?下面似乎並不奏效。謝謝!golang - 如何使用用戶和密碼打開db連接

func db() (database *sql.DB) { 
    database, err := sql.Open("postgres", "dbname=chitchat user=tom password=tomtom sslmode=disable") 
    if err != nil { 
     log.Fatal(err) 
    } 
    return 
} 
+2

您在err中看到了什麼錯誤消息? – VonC

+0

發現sql.Open很好,但我無法創建用戶。 以下是[github](https://github.com/mjwong/chitchat)上的完整代碼 – Mike

+0

問題已解決,但我認爲還有更好的方法。這裏是: 1)授予訪問數據庫的權限 授予對數據庫chitchat的所有權限爲tom; 2)列出chitchat數據庫中的所有序列 SELECT c.relname FROM pg_class c WHERE c.relkind ='S'; 3)授予他們每個人的訪問權限 授予序列users_id_seq的所有權限給tom; 將序列threads_id_seq上的所有權限授予tom; 將序列posts_id_seq上的所有權限授予tom; 將序列sessions_id_seq上的所有權限授予tom; – Mike

回答

7

你可以看到例子lib/pq/doc.gomurz/dat(使用LIB/PQ):

db, err := sql.Open("postgres", "user=pqgotest dbname=pqgotest sslmode=verify-full") 
db, err := sql.Open("postgres", "dbname=dat_test user=dat password=!test host=localhost sslmode=disable") 

你也可以使用一個URL連接到數據庫。例如:

db, err := sql.Open("postgres", "postgres://pqgotest:[email protected]/pqgotest?sslmode=verify-full") 
+0

謝謝你!重試了好幾次,終於奏效了。我刪除了感嘆號'!'在密碼雖然。 – Mike

+0

@Mike是的,這只是一個例子(其中包括'!') – VonC

+0

請參閱代碼鏈接。我設法使用[go-gorp](https://github.com/go-gorp/gorp)測試來運行它,但仍然面臨着上述聊天代碼的問題。 – Mike

相關問題