【发布时间】:2021-06-24 02:09:04
【问题描述】:
我尝试从云运行连接到我的 MySql 实例,但是当我部署到云运行时,数据库的 ip 总是被替换。
我的连接字符串:
DATABASE_URL="mysql://root:test@202.x.x.x:3306/my_db?serverVersion=8.0"
然后如果尝试部署它会说:
SQLSTATE[HY000] [1045] 用户 'root'@'35.x.x.x' 的访问被拒绝(使用密码:YES)
这个IP 35.x.x.x貌似是google云IP,但是这个IP是哪里来的???当我再次部署时,还有另一个谷歌 IP。
【问题讨论】:
-
你是如何连接的?通常,连接字符串中只使用主机名或 IP。您无法通过 LAN IP 或 localhost 连接?有关 DB 和 Web 服务器的更多详细信息可能会有所帮助(例如,在不同的数据中心,都在一台机器上,在同一个 LAN 上等)
-
如果我在本地尝试过它可以工作,所以我可以连接到我的外部 MySql 实例。所以看起来这是一个 CloudRun 问题。服务器结构如下所示。 Google CloudRun 容器 -> 使用 MySql 的自托管 vServer(无 Google Cloud Server)。
-
这很奇怪,我上周在 Cloud Run 上部署了一个 Symfony 应用程序,使用 Cloud SQL,我没有遇到任何类似的问题......而且我认为 Cloud Run 不会改变任何事情由它自己。也许与我们分享更多信息(构建,码头工人,...)
-
Cloudrun SQL 正在运行。但我说的是自托管 MySQL 实例。
-
您能分享一下您是如何在代码中连接到数据库的吗?
标签: php mysql symfony google-cloud-platform google-cloud-run