【发布时间】:2020-01-03 20:31:57
【问题描述】:
我试图在 Google Cloud 服务上部署我的 NodeJS 应用程序并在我尝试使用 Postman 通过 localhost/8080 调用数据库查询时出现以下错误,这是我的服务器正在侦听的位置:connect ENOENT /cloudsql/<MY_CONNECTION_NAME>。这是我的数据库连接文件,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 进入数据库。
【问题讨论】:
-
您的 CloudSQL 实例中是否启用了公共 IP?您使用的是灵活的还是标准的 App Engine?
标签: mysql sql node.js google-app-engine google-cloud-sql