首页 文章

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

提问于
浏览
1

代码非常基础 . 使用mysql的简单nodejs应用程序 . 当代码尝试在Google App引擎上连接到Google Cloud MySql服务器(第二代)时收到 Error: connect ETIMEDOUT .

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

应用引擎应用和谷歌 Cloud 服务器属于谷歌 Cloud 控制台中的同一项目 . 所以不需要额外的权限(?)

所以我无法理解如何允许app引擎访问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");

1 回答

  • 2

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

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

相关问题