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