我无法使用快速 js 应用程序将 gcloud mysql 与应用程序引擎连接起来



我试图部署我的express js应用程序到应用程序引擎,我也想链接这个应用程序引擎到mysql数据库,但我得到这个错误时连接到数据库:

Error: connect ENOENT /cloudsql/********3li      at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1145:16)
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]      --------------------
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]      at Protocol._enqueue (/app/node_modules/mysql/lib/protocol/Protocol.js:144:48)
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]      at Protocol.handshake (/app/node_modules/mysql/lib/protocol/Protocol.js:51:23)
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]      at PoolConnection.connect (/app/node_modules/mysql/lib/Connection.js:116:18)
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]      at Pool.getConnection (/app/node_modules/mysql/lib/Pool.js:48:16)
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]      at Pool.query (/app/node_modules/mysql/lib/Pool.js:202:8)
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]      at /app/api/routes/users.js:48:22
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]      at processTicksAndRejections (internal/process/task_queues.js:97:5) {
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]    errno: 'ENOENT',
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]    code: 'ENOENT',
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]    syscall: 'connect',
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]    address: '/cloudsql/********3li ',
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]    fatal: true
2021-10-15 08:46:41 appengineedokanapi[20211015t103941]  }

我也使用node-mysql库与express js

const pool = mysql.createPool({
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE,
socketPath: `/cloudsql/${process.env.INSTANCE_CONNECTION_NAME}`,
})

应用程序。yaml包含:

env_variables: 
INSTANCE_CONNECTION_NAME : ********3li
DB_DATABASE : databaseName
DB_USER : databaseUser
DB_PASSWORD : *******

正如'blacknamefornow'在评论中指出并经mohammed -ali确认的那样,问题出在app.yaml文件中的INSTANCE_CONNECTION_NAMEenv变量上。

参考这个答案,格式应该是{project-id}:europe-west1:{database}

相关内容