mysql - 连接超时 : Nodejs Google App Engine to Cloud MySql

标签 mysql node.js google-app-engine google-cloud-platform google-cloud-sql

代码非常基础。使用 mysql 的简单 nodejs 应用程序。 错误:连接 ETIMEDOUT 当代码尝试连接到 google app engine 上的 Google Cloud MySql 服务器(第二代)时收到。

但是应用程序能够从我的本地机器连接到 MySql 服务器,因为我机器的 IP 地址已列入白名单。

App Engine 应用程序和谷歌云服务器属于谷歌云控制台中的同一个项目。所以不需要额外的权限(?)

所以我不明白如何允许应用引擎访问 MySql 服务器。

var express    = require('express'),
    mysql      = require('mysql'),
    bodyParser = require('body-parser')
// Application initialization

var connection = mysql.createConnection({
        host     : 'ip_address',
        user     : 'root',
        password : 'password',
        database : 'database_name'
    });

var app = express();

app.use(bodyParser.urlencoded({
  extended: true
}));

app.use(bodyParser.json());

app.get('/_ah/health', (req, res) => {
    res.status(200)
    res.send({hello:'world'})
})


app.get('/', function(req, res) {
    connection.query('select * from blogs', 
        function (err, result) {
            if (err) throw err;
            res.send({result: result});
        }
    );
});

// Begin listening

app.listen(8080);
console.log("Express server listening");

最佳答案

在连接到 mysql 时使用 socketPath 参数有帮助。

var connection = mysql.createConnection({
        host     : 'ip_address',
        user     : 'root',
        password : 'password',
        database : 'database_name'
        socketPath: “/cloudsql/projectName:zone:instance-name”
    });

关于mysql - 连接超时 : Nodejs Google App Engine to Cloud MySql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49154461/

相关文章:

c++ - Qt 编译问题 w/MySQL - Mac OS X

mysql - 如何将每个sql结果存储在循环生成的数据帧中?

node.js:使用用户定义的id在elasticsearch中进行数据索引

Nodejs/async 中的 JavaScript 变量提升

google-app-engine - 如何从本地服务器提供谷歌云存储图像?

mysql - 根据具体条件连接3个表

mysql - mysql 5.7中json数据类型的数据长度/大小限制是多少

node.js - mongoose findOne 不是一个函数

python - 指定 Google App Engine 上应使用 Python 2.5 还是 2.7

java - 分析/优化谷歌应用引擎应用程序的最佳方式是什么?