在云运行上运行映像时,我无法连接到Cloud实例。这个功能成功了吗?
我已经成功地用Compute连接到同一个SQL实例。
尝试使用一个简单的shell命令连接到Cloud实例:
mysql --host=$MYSQL_IP --user=$MYSQL_ROOT --password=$MYSQL_PASS -e "SHOW DATABASES"结果以如下方式记录:
错误2003 (HY000):无法连接到HY000 (110)上的MySQL服务器
发布于 2019-12-02 09:52:03
这个问题是在云运行达到GA (通用可用性)之前的几个月被问到的。
云运行(完全托管)现在支持使用数据库的公共IP地址连接到Cloud实例(包括MySQL和PostgreSQL)。
gcloud run services update run-mysql \
--add-cloudsql-instances [INSTANCE_CONNECTION_NAME] \
--set-env-vars CLOUD_SQL_CONNECTION_NAME=[INSTANCE_CONNECTION_NAME],\
DB_NAME=[MY_DB],DB_USER=[MY_DB_USER],DB_PASS=[MY_DB_PASS]...where INSTANCE_CONNECTION_NAME的格式是PROJECT_ID:REGION:INSTANCE_ID (由gcloud sql instances describe <INSTANCE-ID> | grep connectionName返回或在云控制台中Cloud实例的概述部分中可用)。
请注意,Cloud用于授权连接到Cloud的服务帐户必须具有正确的IAM权限,如果DB实例和Cloud服务不是同一个项目的一部分,则需要进行一些配置。
上面的代码负责云运行和Cloud之间的连接。要让应用程序实际与Cloud实例对话,需要使用位于/cloudsql/INSTANCE_CONNECTION_NAME的Unix域套接字从云运行服务进行连接(这些连接是自动加密的)。
不同的语言和不同的数据库驱动程序将使用不同的方式连接到Cloud实例。这个链接有更多的细节。
https://stackoverflow.com/questions/56586795
复制相似问题