yar*_*123 7 mysql google-cloud-sql google-compute-engine
我正在使用谷歌计算引擎,并有一个自动缩放实例组,可以根据需要启动新的虚拟机,所有虚拟机都位于负载平衡器后面。我也在同一个项目中使用谷歌的云 SQL。VM 需要连接到云 SQL 实例。
由于虚拟机的 IP 是动态的,我不能只是将 IP 插入 SQL 访问配置,所以我遵循了云 sql 代理设置以及来自这个非常相似问题的注释: How to connect from a pool of Google Compute Engine实例到同一项目中的 Cloud SQL DB?
我现在可以登录到单个测试 VM 并运行:
./cloud_sql_proxy -instances=PROJ_NAME:TIMEZONE:SQL_NAME=tcp:3306
Run Code Online (Sandbox Code Playgroud)
一切正常,并且该 VM 连接到云 SQL 实例。
下一步是我遇到问题的地方。如何设置虚拟机,使其在从实例模板构建或刚刚重新启动时自动启动代理。显而易见的答案似乎是将上述内容推送到 VM 的启动脚本中,但这似乎不起作用。因此,使用我的单个测试 VM,我可以通过 SSH 连接到 VM 并手动运行 cloud_sql_proxy 命令,一切正常。如果我然后在我的启动脚本中包含以下内容并重新启动虚拟机,它不会连接:
#! /bin/bash
./cloud_sql_proxy -instances=PROJ_NAME:TIMEZONE:SQL_NAME=tcp:3306
Run Code Online (Sandbox Code Playgroud)
有什么建议?我真的不敢相信从同一个项目中的 VM 连接到 SQL 云这么难......
小智 4
您显示的启动脚本不\xe2\x80\x99t 显示cloud_sql_proxy 的下载步骤。
\n\n您需要先下载然后启动代理。因此,您的启动脚本应如下所示:
\n\nsudo wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64\nsudo mv cloud_sql_proxy.linux.amd64 cloud_sql_proxy\nsudo chmod +x cloud_sql_proxy\nsudo ./cloud_sql_proxy -instances=PROJ_NAME:TIMEZONE:SQL_NAME=tcp:3306 &\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3021 次 |
| 最近记录: |