使用CloudRun将node-express-typeorm服务器与CloudSQL Postgres实例连接时出现问题。
我已经根据官方文档https://cloud.google.com/run/docs/configuring/connect-cloudsql
成功添加了数据库代理。并将快递服务的环境变量设置为
TYPEORM_URL=/cloudsql/[CONNECTION NAME]
但是该应用无法启动,因为无法连接数据库。
答案 0 :(得分:2)
我已经解决了这个问题。罪魁祸首是TypeORM。 TypeORM正在使用TYPEORM_URL
分隔符从/
解析数据库主机。而且它仅读取cloudsql
而不是/cloudsql/[CONNECTION NAME]
。因此,该应用程序无法连接到正确的端点。
要解决此问题,请设置以下环境变量,而不是TYPEORM_URL
TYPEORM_HOST=/cloudsql/[CONNECTION NAME]
TYPEORM_USERNAME=<username>
TYPEORM_PASSWORD=<password>
TYPEORM_DATABASE=<db>
答案 1 :(得分:0)
我也面临着类似的问题,尽管我已经听了您的意见,但还是有问题。可以共享您的连接配置吗?
这是我的
let confBase: PostgresConnectionOptions = {
type: "postgres",
host: dbHOST as string,
port: parseInt(dbPORT as string, 10),
username: dbUSER,
password: dbPWD,
database: dbDATABASE,
synchronize: true,
logging,
};
在主机中,如果有这样的字符串
dbHOST = "/cloudsql/THEPROJECT:THEREGION:THEINSTANCE"
但是,当尝试连接时,出现以下错误:
at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1126:14) {
errno: 'ENOENT',
code: 'ENOENT',
syscall: 'connect',
address: '/cloudsql/THEPROJECT:THEREGION:THEINSTANCE/.s.PGSQL.5432'
我现在面对这个问题已有一段时间了。 我检查了几次用户并验证,他们都还可以
Rgds