Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql NodeJS应用程序(Express)中的谷歌云SQL连接-->;错误:连接eNONT_Mysql_Sql_Node.js_Google App Engine_Google Cloud Sql - Fatal编程技术网

Mysql NodeJS应用程序(Express)中的谷歌云SQL连接-->;错误:连接eNONT

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

我试图在谷歌云服务上部署我的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_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将外壳插入数据库。

查看页面。特别是,如果插座不存在,您应该检查以下几点:

  • 对于GAE Flex,请确保在
    app.yaml
    中包含以下内容:
  • beta\u设置:
    云计算sql实例:
    
  • 确保已启用SQL Admin API,并确保您对服务帐户(service PROJECT)具有正确的IAM权限(
    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>