这是我的情境。我已经在Google SQL云上设置了一个运行中的Postgres数据库实例,如果我将本地IP添加到白名单中,我可以直接连接并运行没有问题。
然后,我部署了一个docker容器(postGrest),它是一个web服务器,用于连接postgres数据库。当我在Google Cloud Run上进行配置时,有一个下拉选项,我可以在其中指定数据库连接,它说,在幕后,它会为该连接配置Cloud SQL代理。
该容器允许传递环境变量来指定哪个服务器等等。其中一个必需参数是DB_URI到postgred实例。在本地运行时,它看起来像这样: postgres://authenticator:mysecretpassword@localhost:5432/testdb
当我尝试在云版本上进行配置时,我尝试使用IP 127.0.0.1(谷歌云SQL代理文档说这就是通过代理连接的方法)。但这不起作用。
然后我尝试使用分配给postgres数据库的公共IP……这也不起作用。
有人知道如何使用这种DB_URI格式来指定正确的连接字符串吗?
然后,我部署了一个docker容器(postGrest),它是一个web服务器,用于连接postgres数据库。当我在Google Cloud Run上进行配置时,有一个下拉选项,我可以在其中指定数据库连接,它说,在幕后,它会为该连接配置Cloud SQL代理。
该容器允许传递环境变量来指定哪个服务器等等。其中一个必需参数是DB_URI到postgred实例。在本地运行时,它看起来像这样: postgres://authenticator:mysecretpassword@localhost:5432/testdb
当我尝试在云版本上进行配置时,我尝试使用IP 127.0.0.1(谷歌云SQL代理文档说这就是通过代理连接的方法)。但这不起作用。
然后我尝试使用分配给postgres数据库的公共IP……这也不起作用。
有人知道如何使用这种DB_URI格式来指定正确的连接字符串吗?
jdbc:postgresql:///my-db-name?host=/cloudsql/my-project-id:us-west1:my-postgres-instance-name
(请注意,我通过我的数据库 API 提供 id/pw 参数而不是通过连接字符串提供,它可以正常工作)。 - Kevin Won