gpt4 book ai didi

mysql - 使用.net core从google cloud run连接到google cloud(mysql)

转载 作者:行者123 更新时间:2023-11-29 09:29:32 25 4
gpt4 key购买 nike

我在 google cloud run 上安装了一个 .net core 应用程序作为 docker,该应用程序需要连接到云 sql (mysql)。

当使用私有(private)IP地址时,它不起作用。
当使用公共(public)IP时,它可以工作,但对于生产来说这不是一个好的解决方案。

这是我的连接字符串:

"ConnectionString": "server=10.4.16.6;database=mydb;user=root;pwd=mypwd"

当我创建应用程序时,我可以选择需要连接的数据库:

enter image description here

但这无助于连接。
The relevant docs正在明确解释如何为 python 和 java 执行此操作。

最佳答案

如果您不想使用公共(public) IP,则需要依赖服务帐户来连接到 Cloud SQL。但是,.net MySQL 驱动程序无法理解 GCP IAM 和服务帐户。因此,您需要使用名为 Cloud SQL Proxy 的代理。 Cloud SQL 代理了解 IAM 和服务帐号。

流程基本上如下所示:

Your app -> Regular MySQL Port -> Cloud SQL Proxy(Installed in the app's network or locally) -> CloudSQL

您需要执行以下操作:

  1. 创建服务帐户
  2. Cloud SQL 客户端 角色分配给创建的服务帐号
  3. 下载 json 格式的服务帐户 key
  4. 设置环境变量 GOOGLE_APPLICATION_CREDENTIALS=C:\Downloaded.json
  5. 下载 Cloud SQL Proxy
  6. 运行它 `cloud_sql_proxy -instances=projectname:regioname:instanceid=tcp:3306
  7. 此时,您的 MySQL 代理已准备好接受 3306 处的连接,修改连接字符串以采用 localhost 或您安装 Cloud SQL 代理的任何位置。

了解更多信息 About the Cloud SQL Proxy

关于mysql - 使用.net core从google cloud run连接到google cloud(mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58989890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com