gpt4 book ai didi

postgresql - 带有gorm拨号错误的PostgreSQL连接无法分配请求的地址

转载 作者:行者123 更新时间:2023-12-01 20:25:46 29 4
gpt4 key购买 nike

我正在尝试将新的gorm v2实现与Postgresql一起使用(我将Docker用于Golang应用程序和Postgres)。我尝试按照gorm documentation所示进行操作。
这给了我以下错误:

web_1 | 2020/09/19 19:25:57 /go/src/caiqueservice/main.go:36 failedto connect to host=/tmp user=admin database=caique: dial error (dialunix /tmp/.s.PGSQL.5432: connect: no such file or directory)


因此,由于文档未指定 host,但错误消息将其设置为/tmp,因此我设置了该值。
dsn := fmt.Sprintf("host=%v user=%v password=%v dbname=%v port=%v sslmode=disable",
os.Getenv("DB_HOST"),
os.Getenv("DB_USERNAME"),
os.Getenv("DB_PASSWORD"),
os.Getenv("DB_DATABASE"),
os.Getenv("DB_PORT"),
)
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
.env
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=caique
DB_USERNAME=admin
DB_PASSWORD=password
这样做会给我以下错误消息:

web_1 | 2020/09/19 19:36:47 /go/src/caiqueservice/main.go:36 failedto connect to host=localhost user=admin database=caique: dial error(dial tcp [::1]:5432: connect: cannot assign requested address)


pgadmin可以访问postgres数据库。
我不知道下一步该怎么做,我们将不胜感激。

最佳答案

在容器内部,localhost是指容器本身,而不是主机。如果您使用的是docker-compose,则应该能够使用postgres容器名称作为主机名(从app容器)连接到postgres容器。如果您分别运行两个容器,则需要将它们连接到相同的docker网络或link

关于postgresql - 带有gorm拨号错误的PostgreSQL连接无法分配请求的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63972783/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com