我正在使用谷歌计算引擎,并且有一个自动缩放实例组,可以根据需要启动新的虚拟机,所有这些都位于负载均衡器后面。我也在同一个项目中使用谷歌的云 SQL。 VM 需要连接到云 SQL 实例。
由于虚拟机的 IP 是动态的,我不能只将 IP 插入 SQL 访问配置,所以我遵循了 cloud sql proxy设置以及这个非常相似的问题的注释: How to connect from a pool of Google Compute Engine instances to Cloud SQL DB in the same project?
我现在可以登录到单个测试虚拟机并运行:
./cloud_sql_proxy -instances=PROJ_NAME:TIMEZONE:SQL_NAME=tcp:3306
一切正常,VM 连接到云 SQL 实例。
下一步是我遇到问题的地方。我如何设置 VM,以便它在从实例模板构建或刚刚重新启动时自动启动代理。显而易见的答案似乎是将上述内容推送到 VM 的启动脚本中,但这似乎不起作用。因此,对于我的单个测试 VM,我可以通过 SSH 连接到 VM 并手动运行 cloud_sql_proxy 命令,一切正常。如果我随后在我的启动脚本中包含以下内容并重新启动它不连接的 VM:
#! /bin/bash
./cloud_sql_proxy -instances=PROJ_NAME:TIMEZONE:SQL_NAME=tcp:3306
有什么建议吗?我真的不敢相信从同一个项目中的 VM 连接到 SQL 云有这么难...
最佳答案
你显示的启动脚本没有显示cloud_sql_proxy的下载步骤。
您需要先下载然后启动代理。因此,您的启动脚本应该如下所示:
sudo wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64
sudo mv cloud_sql_proxy.linux.amd64 cloud_sql_proxy
sudo chmod +x cloud_sql_proxy
sudo ./cloud_sql_proxy -instances=PROJ_NAME:TIMEZONE:SQL_NAME=tcp:3306 &
关于mysql - google compute engine VM启动时自动启动gcloud sql proxy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39709984/