带有gorm拨号错误的Postgresql连接无法分配请求的地址
我正在尝试将新的gorm v2实现与Postgresql一起使用(我在Golang应用程序和Postgres中使用Docker)。我试着按图中所示做 这给了我以下错误: web|1 | 2020/09/19 19:25:57/go/src/caiqueservice/main.go:36失败 要连接到主机=/tmp user=admin database=caique:拨号错误(拨号 unix/tmp/.s.PGSQL.5432:connect:没有这样的文件或目录) 因此,由于文档没有指定主机,但错误消息将其设置为/tmp,因此我设置了该值带有gorm拨号错误的Postgresql连接无法分配请求的地址,postgresql,go,go-gorm,Postgresql,Go,Go Gorm,我正在尝试将新的gorm v2实现与Postgresql一起使用(我在Golang应用程序和Postgres中使用Docker)。我试着按图中所示做 这给了我以下错误: web|1 | 2020/09/19 19:25:57/go/src/caiqueservice/main.go:36失败 要连接到主机=/tmp user=admin database=caique:拨号错误(拨号 unix/tmp/.s.PGSQL.5432:connect:没有这样的文件或目录) 因此,由于文档没有指定主机
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{})
环境署署长
执行此操作会显示以下错误消息:
web|1 | 2020/09/19 19:36:47/go/src/caiqueservice/main.go:36失败
要连接到host=localhost user=admin database=caique
:拨号错误
(拨打tcp[::1]:5432:connect:无法分配请求的地址)
pgadmin可以访问postgres数据库。
我不知道接下来要做什么,非常感谢您的帮助。在容器中,
localhost
指的是容器本身,而不是主机。如果您使用docker compose,您应该能够使用postgres容器名称作为主机名连接到postgres容器(从应用程序容器)。如果您分别运行两个容器,则需要将它们连接到同一docker网络或它们。pgadmin是否正在连接到localhost:5432?是的,它是@elemetrics出于开发目的,您还可以使用172.17.0.1
作为主机名(容器->主机)
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=caique
DB_USERNAME=admin
DB_PASSWORD=password