gpt4 book ai didi

mysql - 从 Cloud Run (knative) 连接到 Google Cloud MySql

转载 作者:行者123 更新时间:2023-12-04 10:36:01 25 4
gpt4 key购买 nike

对于我正在处理的示例项目 ( https://gitlab.com/connorbutch/reading-comprehension-ws ),我在从 google cloud run 连接到 google cloud mysql 数据库时遇到问题。但是,当我使用相同的 args(在 docker 和 kubernetes 中)在本地运行时,应用程序看起来会成功。

此处列出了我在设置 Google Cloud Run 应用程序时遵循的步骤 ( https://cloud.google.com/sql/docs/mysql/connect-run )。我在云数据库信息中包含了 mysql db。我尝试过的事情

使用 jdbc 连接字符串中的 ip 地址进行连接(在本地工作,但页面上的此声明表明它可能不适用于 google cloud run,“Cloud Run(完全托管)不支持使用 TCP 连接到 Cloud SQL 实例。您的代码应该不要尝试使用 IP 地址(例如 127.0.0.1 或 172.17.0.1)访问实例。”)
按照建议使用 unix 套接字连接,服务器甚至无法启动

当我使用 jdbc url 中的 ip 地址启动应用程序时,在谷歌云上,看起来应用程序启动成功:

2020-02-12T02:51:01.733606Z 2020-02-12 02:51:01.733  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path '' 
2020-02-12T02:51:01.740162Z 2020-02-12 02:51:01.739 INFO 1 --- [ main] com.connor.Application : Started Application in 15.717 seconds (JVM running for 17.715)

但是,当我提出第一个请求时,我看到以下内容:
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
Caused by: java.net.SocketTimeoutException: connect timed out
Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

你有什么建议吗?我想知道这是否与必须按照此处列出的方式配置我们的数据源有关: https://github.com/GoogleCloudPlatform/java-docs-samples/blob/master/cloud-sql/mysql/servlet/src/main/java/com/example/cloudsql/ConnectionPoolContextListener.java

最佳答案

遵循文档步骤:

  • Build and deploy container
  • Connect from Cloud Run

  • 最后一步:“ Connecting to CloudSQL ”的第二个链接,而不是使用代码片段,我使用了来自 GitHub instructions 的以下命令:
     gcloud run services update helloworld --add-cloudsql-instances [INSTANCE_CONNECTION_NAME] --set-env-vars CLOUD_SQL_CONNECTION_NAME=[INSTANCE_CONNECTION_NAME],DB_USER=[MY_DB_USER],DB_PASS=[MY_DB_PASS],DB_NAME=[MY_DB]

    其中“helloworld”是我的服务名称。

    请对 一丝不苟间距在这个命令上,因为它很容易抛出错误。

    话虽如此,在执行 curl 命令后我没有收到任何错误,所以我的应用程序运行成功。

    此外,在我对您收到的错误进行调查时,我遇到了 this link ,其中包含此错误的可能原因列表。

    最后,由于错误表示超时,您也可以尝试按照 this 修改 Cloud Run 的请求超时.

    一些可能对您有用的进一步链接是:
  • Diagnosing issues with Cloud SQL instances
  • Troubleshooting Cloud Run (fully managed)

  • 我希望这个信息帮助。

    关于mysql - 从 Cloud Run (knative) 连接到 Google Cloud MySql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60180447/

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