Postgresql 无法从golang连接到docker postgres容器

Postgresql 无法从golang连接到docker postgres容器,postgresql,go,docker,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 现在我想使用主机中的go连接到容器postgres import ( "database/sql" _ "github.com/lib/p

我为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

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

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
中的多行

有人能告诉我我做错了什么吗


谢谢

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

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

中的解决方案对我起了作用。

如果它无法
打开
它应该会失败,并且在
打开
时返回错误,啊,我得到的错误是在查询过程中,
x509:无法验证192.168.99.100的证书,因为它不包含任何IP SAN
sql。Open不检查是否存在有效连接,在开发阶段只需尝试设置
disable
sslmode即可