Mysql NodeJS应用程序(Express)中的谷歌云SQL连接-->;错误:连接eNONT
我试图在谷歌云服务上部署我的NodeJS应用程序,当我试图通过localhost/8080使用Postman调用数据库查询时,出现以下错误,我的服务器正在侦听:Mysql NodeJS应用程序(Express)中的谷歌云SQL连接-->;错误:连接eNONT,mysql,sql,node.js,google-app-engine,google-cloud-sql,Mysql,Sql,Node.js,Google App Engine,Google Cloud Sql,我试图在谷歌云服务上部署我的NodeJS应用程序,当我试图通过localhost/8080使用Postman调用数据库查询时,出现以下错误,我的服务器正在侦听:connect enoint/cloudsql/。这是我的数据库连接文件,config.js: const mysql = require('mysql'); const dotenv = require('dotenv'); dotenv.config(); const { DB_PASS, DB_USER, DB_N
connect enoint/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;
我知道谷歌建议使用一个池来连接,但我担心这样做会要求我重写所有的数据库查询,而且我的最后期限很紧
我已经能够使用该终端成功地使用MYSQL将外壳插入数据库。查看页面。特别是,如果插座不存在,您应该检查以下几点:
app.yaml
中包含以下内容:beta\u设置:
云计算sql实例:
Cloud SQL Client1或更高版本)_NUMBER@gae-api-prod.google.com.iam.gserviceaccount.com`)。如果是在项目之间,请确保您拥有
:
-您可以从您的实例的“实例详细信息”页面复制它此外,使用连接池对查询没有影响。使用池仅意味着当您“打开”连接时,它实际上是在重用现有连接,而当您“关闭”连接时,它会将其放回池中,供您的应用程序在其他地方使用。使用池执行的查询应该完全相同 如果您在
app.yaml
中使用flex作为env运行而没有错误,则会发生这种情况从app.yaml
中删除env:flex
,
你的app.yaml需要如下所示
您将成功连接到云sql而不会导致错误
您的CloudSQL实例中是否启用了公共IP?您使用的是灵活的还是标准的应用程序引擎?请将代码和数据添加为文本(),而不是图像。图片:A)不允许我们复制和粘贴代码/错误/数据进行测试;B) 不允许基于代码/错误/数据内容进行搜索;和。如果图像添加了一些仅由文本代码/错误/数据无法传达的重要信息,则除了代码格式的文本外,还应使用图像。
beta_settings:
cloud_sql_instances: <INSTANCE_CONNECTION_NAME>