当前位置: 首页 > 知识库问答 >
问题:

NodeJS应用程序(Express)中的Google Cloud SQL连接-->错误:connect ENOENT

薛楷
2023-03-14

我试图在Google Cloud services上部署我的NodeJS应用程序,当我试图通过LocalHost/8080使用Postman调用数据库查询时,得到以下错误:connect ENOENT/cloudSQL/ 。下面是我的数据库连接文件config.js:


const mysql = require('mysql');
const dotenv = require('dotenv');

dotenv.config();

const {
  DB_PASS,
  DB_USER,
  DB_NAME,
} = process.env;

const config = {
  user: DB_USER,
  password: DB_PASS,
  database: DB_NAME,
  socketPath: `/cloudsql/${process.env.CLOUD_SQL_CONNECTION_NAME}`,
};

const connection = mysql.createConnection(config);

// create connection
connection.connect((err) => {
  if (err) throw err;
  console.log(`Connected to database ${DB_NAME}`);
});

module.exports.connection = connection;

我知道Google推荐使用池来连接,但我担心这样做会要求我重写所有的数据库查询,而且我的期限很紧。

我已经能够使用终端成功地用MYSQL shell到数据库中。

共有2个答案

夔修伟
2023-03-14

如果您在app.yaml中使用flex作为env来运行而没有错误,则会发生这种情况。从app.yaml中删除env:flex时,您的app.yaml需要与此app.yaml类似

并且您将成功连接到云sql而不会导致错误控制台日志

潘俊
2023-03-14

看一下连接到应用引擎页面。特别是,如果套接字不存在,您应该检查以下一些内容:

  1. 对于GAE Flex,请确保您的app.yaml中包含以下内容:
beta_settings:
  cloud_sql_instances: <INSTANCE_CONNECTION_NAME>

确保已启用SQL管理API,并确保您对服务帐户(service-project_number@gae-api-prod.google.com.IAM.gserviceAccount.com`)具有正确的IAM权限(Cloud SQL Client1或更高版本)。如果在项目之间,请确保您有

请确保 的拼写正确。它的格式应该是 : : -您可以从实例的“实例详细信息”页面中完全复制它。

此外,使用连接池对查询没有影响。使用池仅仅意味着当您“打开”一个连接时,它实际上是在重用一个现有的连接,而当您“关闭”一个连接时,它将它放回池中供应用程序在其他地方使用。使用池执行的查询应该完全相同。

 类似资料:
  • 我正在使用第二代Google Cloud Sql,并在灵活的环境中运行应用程序引擎实例。应用程序引擎连接到云sql以运行sql查询。我已经设置了一个连接池,以创建最少10个连接,最多200个连接。 然而,我读到了这篇文章——https://cloud.google.com/sql/docs/mysql/diagnose-issues其中写道:“在标准环境中运行的每个应用引擎实例与Google Cl

  • 我在Openshift中的node.js single gear不可扩展应用程序中使用NodeEmailer模块时遇到了一些问题。正如文档所建议的,我初始化了transporter对象并使用了sendMail函数。我的代码的简化版本是 当我在本地机器上运行这段代码时,它可以正常工作,但是当我试图在服务器上执行它时,我得到了一个错误,好像应用程序无法连接到smtp服务器。 我试图增加超时连接参数,但

  • 尝试连接到 Node Express 应用程序时,我在浏览器中收到“无法连接”错误。在(我的服务器 IP 地址)1.1.1.1:5000。该应用程序在我的开发环境中工作正常,但在我的 AWS EC2 Linux 服务器上无法正常工作。 Node Express应用程序在dev中的我的计算机上运行 端口5000允许传入TCP。我用一个较小的应用程序(https://hackernoon.com/de

  • 在我们进行负载测试(使用jmeter)之前,一切都很好。当我们模拟100个并发用户时,在3-4分钟后。jmeter开始记录SocketException,连接重置。当我们检查应用程序日志(我们记录应用程序内部的所有异常)和系统事件时,我们什么也找不到。 我们没有对web层的性能采取任何特殊措施。但是在作为wcf应用程序的应用层上,我们使用了每次调用/多并发。我们在应用层上使用了以下配置: ...

  • 我使用nodejs和mqlight来运行https://www.npmjs.com/package/mqlight提供的示例代码。 我使用的是NodeJS5.5.0和npm版本是3.3.12。 我使用 null 当我运行上面的代码时,我得到了下面的错误。 请帮助解决这个问题。我使用的是Windows 7 64位操作系统。

  • 我无法从我的NodeJS应用程序连接到Elasticsearch docker服务器。 这是我的docker-compose文件: 有弹力的js index.js连接: 我有一个dockerize的应用程序(NodeJS和Elasticsearch-v7.9.3)。服务器可以很好地启动,但当我尝试在Elasticsearch中创建客户端实例时,它向我显示了一个错误: Elasticsearch和K