我使用的是Google计算引擎,并且有一个自动扩展实例组,可以根据需要旋转新的虚拟机,所有虚拟机都位于负载均衡器后面。我也在同一项目中使用Google的云SQL。VM需要连接到云SQL实例。
由于VM的IP是动态的,所以我不能仅将IP插入SQL访问配置中,所以我遵循了Cloud sql代理设置以及来自这个非常类似的问题的注释:如何从Google Compute Engine池中进行连接同一项目中将实例复制到Cloud SQL DB?
现在,我可以登录到单个测试VM并运行:
./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 &
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句