Google cloud platform 如何将数据融合连接到云SQL代理
我正在尝试将数据融合与云SQL MySQL和私有IP连接起来。我读过很多资源,似乎这是可能的(至少我还不相信这是不可能的)。到目前为止,我所拥有的:Google cloud platform 如何将数据融合连接到云SQL代理,google-cloud-platform,google-cloud-sql,google-cloud-data-fusion,cloud-sql-proxy,Google Cloud Platform,Google Cloud Sql,Google Cloud Data Fusion,Cloud Sql Proxy,我正在尝试将数据融合与云SQL MySQL和私有IP连接起来。我读过很多资源,似乎这是可能的(至少我还不相信这是不可能的)。到目前为止,我所拥有的: 具有专用IP的数据融合专用实例 具有私有IP的MySQL云SQL实例 部署在虚拟机上的云SQL代理 所有设备都连接到相同的默认VPC网络 防火墙完全打开(IP范围上的入口、出口:0.0.0.0/0和所有协议端口) 从我的VM实例中,我可以使用以下命令连接到MySQL数据库MySQL-u root-host 127.0.0.1-port 3306
- 具有专用IP的数据融合专用实例
- 具有私有IP的MySQL云SQL实例
- 部署在虚拟机上的云SQL代理
- 所有设备都连接到相同的默认VPC网络
- 防火墙完全打开(IP范围上的入口、出口:0.0.0.0/0和所有协议端口)
MySQL-u root-host 127.0.0.1-port 3306
。在云融合中尝试使用相同的参数时,我无法建立连接。我应该检查什么,我可以检查什么以确保所有这些都正确设置
编辑
我最初接受了Ajai的答案,但后来又不接受,因为我无法在新项目中实现连接。这里可能缺少一个元素,一些需要在某处完成的事情。到目前为止,您的方法似乎是正确的。在私有CDF实例和私有CloudSQL MYSQL实例之间连接的唯一方法是通过CloudSQL代理 然而,在采用这种方法时,有一些事情需要检查 虚拟机设置
- 创建专用GCE虚拟机(无外部IP)
- 拥有所有作用域(允许完全访问所有云API)
- 将操作系统更改为“容器化优化操作系统”。这是预装的docker
- 将以下内容作为自动化启动脚本
docker-pull-gcr.io/cloudsql-docker/gce-proxy:1.16
docker run-d\
-p 0.0.0.0:3306:3306\
gcr.io/cloudsql docker/gce proxy:1.16/cloud\u sql\u proxy\
-实例==tcp:0.0.0.0:3306
最后一步应该建立一个代理并使用特定的docker映像运行。更详细的文档可在此处找到()
CloudSQL驱动程序
另外需要注意的是,基于MySQL版本,5.1.39驱动程序可能不会一直工作。请检查中心是否有特定于CloudSQL MySQl的驱动程序
如果这些建议都不适合你,我会尝试更新答案
了解问题的其他资源
对于任何想要理解为什么私有CDF实例不能直接连接到私有CloudSQL MySQL实例的人来说,这里有两个参考资料来讨论它
- &
- )
*。/cloud\u sql\u proxy-instances==tcp:0.0.0.0:3307
sudo docker run -d \
-p 0.0.0.0:3307:3307 \
gcr.io/cloudsql-docker/gce-proxy:latest /cloud_sql_proxy \
-instances=<instance connection name>=tcp:0.0.0.0:3307
sudo docker运行-d\
-p 0.0.0.0:3307:3307\
gcr.io/cloudsql docker/gce proxy:latest/cloud\u sql\u proxy\
-实例==tcp:0.0.0.0:3307
编辑2
关于代理,需要指出的两个关键点是,您可能已经有3306个代理了
绑定到同一实例上的MySQL。使用像3307(或其他数字)这样的端口可以减少这种可能性。请注意,对于到CloudSQL本身的出站连接,CloudSQL代理使用3307
第二件事是将其设置为监听0.0.0.0;如上所述,它绑定到所有IP,允许代理侦听所有传入的连接,而不是仅来自127.0.0.1的连接。谢谢。如何获取在“云融合连接”部分的连接字符串中输入的IP?这是您的云SQL实例的私有IP还是其他什么?连接字符串中的IP是代理vm的私有静态IP。非常感谢。它正在工作。是否有可能使用本文中描述的云SQL代理来实现这一点,或者使用docker是否带来了一些特定的功能?很高兴它成功了!这是cloudsql文档中的官方文档-
*./cloud_sql_proxy -instances=<Instance Connection Name>=tcp:0.0.0.0:3307
sudo docker run -d \
-p 0.0.0.0:3307:3307 \
gcr.io/cloudsql-docker/gce-proxy:latest /cloud_sql_proxy \
-instances=<instance connection name>=tcp:0.0.0.0:3307