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

I'm running a fresh install of Ubuntu 14.04 from Digital Ocean. I've installed Postgres by calling sudo apt-get install postgresql postgresql-contrib. I installed the Postgres driver by calling go get github.com/lib/pq.

I made an Ubuntu user called foo. Then, I used createuser --interactive to create a Postgres role called foo with only the attribute Create DB. Next, I create a new database by calling createdb foo. Finally, I create a new table with CREATE TABLE. Oh, and I've added export PGHOST=/var/run/postgresql to my .bashrc file.

Then, I wrote the following file at /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)
}

The problem I'm having is that the call to sql.Open doesn't return an error, but when I call db.Query I get driver: bad connection. I can use the Postgres interpreter just fine as user foo, but when I try a query from Go it fails. I suspect this might be a permission issue.

The connection string parameter should be user=foo, not username=foo.