【问题标题】:Connection timed out: Nodejs Google App Engine to Cloud MySql连接超时:Nodejs Google App Engine 到 Cloud MySql
【发布时间】:2018-08-15 16:55:59
【问题描述】:

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

但是应用程序能够从我的本地计算机连接到 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 node.js google-app-engine google-cloud-platform google-cloud-sql


    【解决方案1】:

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

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

    【讨论】:

    • 正如您在官方文档中看到的,实际上参数 socketPath 是必需的。在cloud.google.com/appengine/docs/flexible/nodejs/… 的官方文档中,它是通过这部分代码输入的: if (process.env.INSTANCE_CONNECTION_NAME && process.env.NODE_ENV === 'production') { config.socketPath = /cloudsql/${process.env.INSTANCE_CONNECTION_NAME};
    猜你喜欢
    • 2019-11-27
    • 1970-01-01
    • 2017-06-17
    • 2020-06-07
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多