首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >云Run:<Cloud SQL实例IP adress> :3306: connect:连接超时

问云Run:<Cloud SQL实例IP adress> :3306: connect:连接超时
EN

Stack Overflow用户
提问于 2020-07-15 00:36:12
回答 2查看 1K关注 0票数 1

我想在云运行应用程序中连接Cloud。我用过金刚。这是围绕设置的代码。

代码语言:javascript
复制
func getEnv(key, def string) string {
    v := os.Getenv(key)
    if v == "" {
        return def
    }
    return v
}
代码语言:javascript
复制
        DB: DB{
            User:     getEnv("DB_USER", "<user name>"),
            Pass:     getEnv("DB_PASS", "<password>"),
            Host:     getEnv("DB_HOST", "0.0.0.0"),
            Port:     getEnv("DB_PORT", "3306"),
            Database: getEnv("DB_DATABASE", "<database name>"),
        },
代码语言:javascript
复制
    dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=true",
        config.DB.User, config.DB.Pass, config.DB.Host, config.DB.Port, config.DB.Database)

    db, err := gorm.Open("mysql", dsn)

我在云运行设置控制台设置了环境变量。在delpoy应用程序之后,云运行控制台显示Cloud Run error: Container failed to start. Failed to start and then listen on the port defined by the PORT environment variable. Logs for this revision might contain more information.和dial tcp <Cloud SQL Private IP> :3306: connect: connection timed out我怀疑SQL连接是错误的.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-15 01:38:34

你没有在你的问题中提到"VPC“这个词,所以我假设你没有使用它。

云运行不能直接连接到Cloud实例的私有IP。您需要在部署云运行应用程序时指定配置无服务器的VPC访问连接器并指定它。

默认情况下,云运行容器并不是VPC的一部分,因此除非您这样做,否则它们将无法访问专用网络。

票数 1
EN

Stack Overflow用户

发布于 2020-07-15 08:26:17

有几种方法可以将Cloud数据库连接到云运行。如果是MySQL,最简单的方法就是遵循正式文件

如果您想使用带有TCP连接的IP,首先,不能使用0.0.0.0作为IP。

  • 使用(为此,您必须在Cloud实例上授权0.0.0.0/0网络范围,绝对不建议这样做)
  • 插上你的云SQL到您的VPC。而且,正如Ahmet所描述的,使用无服务器VPC连接器将云运行与您的VPC连接起来。然后在代码中添加Cloud的私有IP。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62905897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档