【问题标题】:TypeORM + Express deployed to firebase cloud function cannot connect to Cloud SQLTypeORM + Express 部署到 Firebase 云功能无法连接到 Cloud SQL
【发布时间】:2020-12-24 15:41:26
【问题描述】:

我尝试将 typeorm express 服务器部署到 Cloud Function for Firebase。

ormconfig:

{
  type: "postgres",
  username: [username],
  password: [password],
  database: [dbname],
  extra: {
    socketPath: `/cloudsql/[INSTANCE_CONNECTION_NAME]`,
  },
  synchronize: false,
  dropSchema: false,
  logging: true,
}

(括号内的值是占位符)

部署后,日志报错

TypeORM 连接错误:错误:连接 ECONNREFUSED 127.0.0.1:5432

我不明白为什么DB地址变成127.0.0.1?我错过了什么吗?

【问题讨论】:

    标签: firebase google-cloud-functions typeorm


    【解决方案1】:

    您还需要将host 的值与socketPath 一起设置为/cloudsql/project:region:instance

    【讨论】:

    • 从我读过的教程来看,unix 套接字是连接到 Cloud SQL 的推荐方式。如果设置了host,是否会使用socketPath
    • 确实,unix 套接字是mentioned in the official docs 作为连接到 Cloud SQL 的一种方式。我不确定 TypeORM 是如何在幕后工作的,但我发现其他用户 1 2 表示按照我的建议去做对他们有用。
    【解决方案2】:

    host 应该在 ormconfig.json 中指定,如果你没有为你的数据库实例使用默认端口,port 也需要。请确保您的 ormconfig.json 是有效的 json 格式

    {
      "type": "mysql",
      "host": "localhost",
      "port": 3306,
      "username": "test",
      "password": "test",
      "database": "test",
      "host": "localhost"
    }
    

    【讨论】:

      猜你喜欢
      • 2018-07-24
      • 2021-10-10
      • 2021-11-17
      • 2021-03-20
      • 1970-01-01
      • 2018-08-05
      • 2019-04-25
      • 1970-01-01
      相关资源
      最近更新 更多