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

时间:2014-09-03 02:20:56

标签: sql postgresql go

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

我创建了一个名为foo的Ubuntu用户。然后,我使用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。我可以使用Postgres解释器作为用户foo,但是当我从Go尝试查询时它失败了。我怀疑这可能是一个许可问题。

1 个答案:

答案 0 :(得分:0)

连接字符串参数应为user=foo,而不是username=foo