[Docker Compose] Postgres 连接错误:解决“连接被拒绝”
问题:
尝试时与在 Docker Compose 中运行的 Postgres 数据库建立 Go 连接,错误“连接被拒绝”是尽管能够从 pg-admin 成功连接,但仍遇到此问题。
原因:
连接字符串将数据库主机名引用为“postgres”,它与 Docker Compose 中的服务名称相匹配。然而,实际的容器名称是“database”。
解决方案:
要解决此问题,请将 Docker Compose 文件中的数据库容器重命名为“postgres”或显式指定主机名:
database: build: database restart: always hostname: postgres # Add this line
其他注意事项:
连接字符串: 确保 Go 代码中的连接字符串 (_str_) 包含正确的主机名:
str := fmt.Sprintf("database://%s:%s@%s:%s/%s?sslmode=disable", user, pass, "postgres", port, dbname) # Update the hostname to "postgres"
以上是Docker Compose Postgres 连接被拒绝:为什么 pgAdmin 可以工作但我的 Go 应用程序失败?的详细内容。更多信息请关注PHP中文网其他相关文章!