猿问

Golang lib/pg 无法连接到 postgres

我有这样的代码:


package main


import (

        "database/sql"

        "fmt"

        "log"


        _ "github.com/lib/pq"

)


func main() {

        db, err := sql.Open("postgres", "user=postgres dbname=vagrant sslmode=disable")

        if err != nil {

                log.Fatal(err)

        }


        rows, err := db.Query("SELECT 3+5")

        if err != nil {

                log.Fatal(err)

        }

        fmt.Println(rows)

}

它的结果是:


[vagrant@localhost go-postgres]$ go run test.go

2015/12/19 11:03:53 pq: Ident authentication failed for user "postgres"

exit status 1

但我可以访问 postgres:


[vagrant@localhost go-postgres]$ psql -U postgres vagrant

psql (9.4.4)

Type "help" for help.


vagrant=#

而且我在使用带有 postgres 的 Rails 应用程序时没有任何问题。


有人有想法吗?


编辑:这是我的 pg_hba.conf:


local   all             all                                     trust

host    all             all             127.0.0.1/32            ident

host    all             all             ::1/128                 ident

编辑2:


我在我的 postgres 日志中发现了这个:


< 2015-12-19 12:13:05.094 UTC >LOG:  could not connect to Ident server at address "::1", port 113: Connection refused

< 2015-12-19 12:13:05.094 UTC >FATAL:  Ident authentication failed for user "postgres"

< 2015-12-19 12:13:05.094 UTC >DETAIL:  Connection matched pg_hba.conf line 84: "host    all             all             ::1/128                 ident"

我认为它真的会有所帮助;)


ibeautiful
浏览 271回答 2
2回答

噜噜哒

好的,正确的连接字符串是:"user=postgres&nbsp;host=/tmp&nbsp;dbname=vagrant&nbsp;sslmode=disable"我假设 pg 库使用与psqlruby 驱动程序相同的默认值。学过的知识。

红颜莎娜

在控制台中运行:psql&nbsp;"user=postgres&nbsp;dbname=vagrant&nbsp;sslmode=disable"如果您无法连接,则需要更改 sslmode 否则我会考虑更多。
随时随地看视频慕课网APP

相关分类

Go
我要回答