无法从golang连接到docker postgres容器

时间:2017-01-22 03:55:00

标签: postgresql go docker

我为postgres

启动了docker容器

docker run -i -t -v=":/var/lib/postgresql" -p 5432:5432 my_image/postgresql:9.3

并使用

验证是否可以从主机访问它

psql -h my_docker_ip -p 5432 -U pguser -W pgdb // passowrd: pguser

现在我想在主机中使用postgres连接到容器go

import (
    "database/sql"
    _ "github.com/lib/pq"
    "fmt"
)

func main() {
    db, err := sql.Open("postgres", "user=pguser password='pguser' host=192.168.99.100 port=5432 sslmode=verify-full")

    if err != nil {
        fmt.Println(err)
    }

    rows, err := db.Query("SELECT * FROM test")
    fmt.Println(rows)

}

虽然初始化db实例引用时没有错误,但测试查询本身会打印出来

<nil>

这不应该发生,因为我在运行go代码之前创建了表test和表test中的多行。

有人能告诉我我做错了吗?

由于

1 个答案:

答案 0 :(得分:0)

我在golang中使用mysql客户端时看到了相同的错误:

Failed to connect to database:  x509: cannot validate certificate for 10.111.202.229 because it doesn't contain any IP SANs

https://stackoverflow.com/a/54636760/8645590中的解决方案对我有用。