0

我正在使用 Golang (github.com/jackc/pgx/v4) 尝试连接到我的计算引擎 VM 实例,但没有任何运气,"Unable to connect to database: failed to connect to host=[IP] user=postgres database=postgres: dial error (dial tcp 127.0.0.1:5433: connectex: No connection could be made because the target machine actively refused it.)"在 GCP 上安装了 postgres 之后:https ://cloud.google.com /社区/教程/设置-postgres

在我使用的 golang 中pgx.Connect(),这是我传递的 DSN: dsn = "pgsql:host=[My external VM IP on GCP];port=5432;dbname=[DB name];user=postgres;password=[my pass]"

我有一种有趣的感觉,我需要连接到一个实例 ID,但是在尝试访问 GCP 上的 VM 时,没有关于我传递的正确主机或正确 DSN 格式的文档。

4

2 回答 2

1

错误消息看起来像是在尝试连接到127.0.0.1:5433.

您可以尝试从 DSN 中删除分号吗?

pgx.Connect(context.Background(), "host=[My external VM IP on GCP] port=5432 dbname=[DB name] user=postgres password=[my pass]")
于 2021-03-25T22:58:51.863 回答
1

似乎网络标签(在防火墙下的 VM 实例中找到的标签需要相同)并且正确的格式就像建议的 maxm 一样:pgx.Connect(context.Background(), "host=[My external VM IP on GCP] port=5432 dbname=[DB name] user=postgres password=[my pass]")

于 2021-03-26T00:20:38.870 回答