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



代码非常基本。使用 mysql 的简单 nodejs 应用程序。 当代码尝试连接到Google App Engine上的Google Cloud MySql服务器(第二代(时,会收到Error: connect ETIMEDOUT

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

App Engine 应用程序和 Google Cloud Server 在 Google Cloud Console 中属于同一项目。因此不需要额外的权限(?

所以我不明白如何允许应用程序引擎访问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”
    });

相关内容

  • 没有找到相关文章

最新更新