postgresql - 无法从 golang 连接到 docker postgres 容器

标签 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//密码: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)

}

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

<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

https://stackoverflow.com/a/54636760/8645590 中的解决方案为我工作。

关于postgresql - 无法从 golang 连接到 docker postgres 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41787162/

相关文章:

c++ - opencv 二进制数据 jpg 图像到 cv::Mat

go - 从 golang 中的特定接口(interface)获取底层类型

docker - 无法启动Hyper-V容器

Docker:如何从容器内访问我的服务器的公共(public) IP?

postgresql - 使用 Postgres 的 Golang UPDATE 专栏

sql - 如何在 Postgres 中构建一个函数来计算两个 "select count(*)"查询的百分比?

postgresql - 如何创建 docker-compose 版本 2 以使用卷拥有持久的 postgres 数据库?

go - 在 Go (golang) 中,如何使用一个 `range` 迭代两个数组、 slice 或映射

mongodb - 使用 MongoDB 检查 Golang 中对象数组中的重复项

docker - docker 内的 Jenkins (Jenkins)无法提取图像