node.js - 我无法使用 express 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] }
我也在使用带有 express js 的 node-mysql 库
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}`,
})
app.yaml 包含:
env_variables:
INSTANCE_CONNECTION_NAME : ********3li
DB_DATABASE : databaseName
DB_USER : databaseUser
DB_PASSWORD : *******
解决方案
正如 'blacknamefornow' 在评论中指出并由 mohamed-ali 确认的那样,问题出INSTANCE_CONNECTION_NAME
在文件中的 env 变量中app.yaml
。
从这个答案中引用,格式应该是{project-id}:europe-west1:{database}
.
推荐阅读
- python - pythonnet 在 numpy 导入时崩溃
- apache-kafka - Spring Cloud 数据流
- python - 使用 PySpark 从 HBase 读取
- ibm-midrange - 多次提交 RPGLE 作业
- sql-server - 使用 Lambda 连接到 SQL Server
- apache-spark - 如何在 Apache livy 中提交 pyspark 作业?
- elasticsearch - Elastic search 2.3 查询问题
- r - 从第二次遇到开始替换字符串中的字符值的R代码
- typescript - 在 WebStorm 中为 Vue + TypeScript 配置 jest 运行配置
- r - 读取 R 代码时读取 roxygen2 @importFrom