lib/pq 连接但查询因连接错误而失败

我正在从 Digital Ocean 运行全新安装的 Ubuntu 14.04。我已经通过调用安装了 Postgres sudo apt-get install postgresql postgresql-contrib。我通过调用安装了 Postgres 驱动程序go get github.com/lib/pq。


我创建了一个名为foo. 然后,我曾经createuser --interactive创建一个foo仅使用属性调用的 Postgres 角色Create DB。接下来,我通过调用创建一个新数据库createdb foo。最后,我用CREATE TABLE. 哦,我已经添加export PGHOST=/var/run/postgresql到我的.bashrc文件中了。


然后,我在/home/foo/go/src/dbtest.go.


package main


import (

    "database/sql"

    "fmt"

    "log"


    _ "github.com/lib/pq"

)


func main() {

    connInfo := "username=foo dbname=foo host=/var/run/postgresql sslmode=disable"

    db, err := sql.Open("postgres", connInfo)

    if err != nil {

        log.Fatalln(err)

    }

    defer db.Close()


    rows, err := db.Query("SELECT * FROM bar")

    if err != nil {

        log.Fatalln(err) // Code fails here.

    }

    defer rows.Close()


    fmt.Println(rows)

}

我遇到的问题是调用sql.Open不返回错误,但是当我调用时db.Query我得到driver: bad connection. 我可以像 user 一样使用 Postgres 解释器foo,但是当我尝试从 Go 查询时它失败了。我怀疑这可能是权限问题。


莫回无
浏览 225回答 1
1回答

呼唤远方

连接字符串参数应该是user=foo,而不是username=foo。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go