连接节点v5.10.1时握手不活动超时错误。到aws mysql RDS

时间:2016-04-24 20:18:21

标签: mysql node.js amazon-web-services rds

我很难及时解决这个问题。当我尝试将节点连接到aws的rds mysql数据库时,我收到此错误:

{ [Error: Handshake inactivity timeout]
  code: 'PROTOCOL_SEQUENCE_TIMEOUT',
  fatal: true,
  timeout: 10000 }

解决方案在线建议更新到节点v4.2.1,但我在v5.10.1上。 将节点连接到localhost mysql时没有问题。

这是我的代码:

connectionpool = mysql.createPool({
        host     : 'dev-db.xxxxxx.us-west-2.rds.amazonaws.com',
        user     : 'xxxxx',
        password : 'xxxxx',
        database : 'decurate',

    });

app.get('/:table', function(req,res){
connectionpool.getConnection(function(err, connection) {
        if (err) {
            console.error('CONNECTION error: ',err);
            res.statusCode = 503;
              res.send({
                result: 'error',
                err:    err.code
            });
        } else {

           connection.query('SELECT * FROM user ORDER BY user_id DESC LIMIT 20', req.params.id, function(err, rows, fields) {
                if (err) {
                    console.error(err);
                    res.statusCode = 500;
                    res.send({
                        result: 'error',
                        err:    err.code
                    });
                }


                res.send({
                    result: 'success',
                    err:    '',
                    json:   rows
                });
                connection.release();
            });
        }
    });


});

请指教。

谢谢!

1 个答案:

答案 0 :(得分:0)

我猜问题是主机无法连接到mysql db。我通过将主机配置添加到我的hosts文件来解决这个问题。即使您运行任何aws实例,也应将域名配置为hosts文件。这样您的应用程序配置就会自动查找到所需的IP地址。

127.0.0.1     localhost
127.0.0.1     yourdomain.com

重启你的apache。

它对我有用。尝试这个&让我知道。