首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VPN Azure上将节点VM与SQL VM连接

在VPN Azure上将节点VM与SQL VM连接
EN

Stack Overflow用户
提问于 2017-07-03 13:07:18
回答 1查看 315关注 0票数 0

我在Azure上有两个VM :机器A:是运行Nodejs应用程序机器的服务器吗B:是运行mysql实例的VM

机器A和B在同一个VPN中,或者有一个本地地址。我用ping测试了从机器A到B的连接,它起作用了。

我的问题是来自nodejs应用程序和mysql实例的数据库连接。

app.js

代码语言:javascript
复制
var express = require('express'),
  config = require('./config/config'),
  db = require('./app/models');

var app = express();

module.exports = require('./config/express')(app, config);

db.sequelize
  .sync()
  .then(function () {
    if (!module.parent) {
      app.listen(config.port, function () {
        console.log('Express server listening on port ' + config.port);
      });
    }
  }).catch(function (e) {
    throw new Error(e);
  });

config.js

代码语言:javascript
复制
var path = require('path'),
    rootPath = path.normalize(__dirname + '/..'),
    env = process.env.NODE_ENV || 'production';

var config = {
  development: {
    root: rootPath,
    app: {
      name: 'api-http-revo'
    },
    port: process.env.PORT || 3000,
    db: 'mysql://localhost/api-http-revo-development'
  },

  test: {
    root: rootPath,
    app: {
      name: 'api-http-revo'
    },
    port: process.env.PORT || 3000,
    db: 'mysql://localhost/api-http-revo-test'
  },

  production: {
    root: rootPath,
    app: {
      name: 'api-http-revo'
    },
    port: process.env.PORT || 3000,
    db: {
      host: '10.0.0.4', //Local Ip address on VPN
      user: 'myusername',
      password: 'mypassword',
      database: 'db-revo',
      port: 3306
    }
  }
};

module.exports = config[env];

“npm启动”错误:

未处理的拒绝错误: SequelizeConnectionRefusedError: connect 10.0.0.4:3306 at tryCatcher at tryCatcher (/home/giovannimarino/api-http-revo/node_modules/bluebird/js/release/util.js:16:23) at Promise._settlePromiseFromHandler (/home/giovannimarino/api-http-revo/node_modules/bluebird/js/release/promise.js:512:31) at Promise._(/home/giovannimarino/api-http-revo/node_modules/bluebird/js/release/promise.js:569:18) at Promise._settlePromise0 (/home/giovannimarino/api-http-revo/node_modules/bluebird/js/release/promise.js:614:10) at Promise._settlePromises (/home/giovannimarino/api-http-revo/node_modules/bluebird/js/release/promise.js:689:18) at Async._drainQueue (/home/giovannimarino )/api-http-revo/node_modules/bluebird/js/release/async.js:133:16) at Async._drainQueues (/home/giovannimarino/api-http-revo/node_modules/bluebird/js/release/async.js:143:10) at Immediate.Async.drainQueues onImmediate at processImmediate immediateCallback

以下屏幕截图是防火墙配置:

机器B:

机A

EN

回答 1

Stack Overflow用户

发布于 2017-07-03 13:18:43

这可能是由于防火墙阻塞了您的DB连接。若要确认在端口3306上执行telnet,如果发现端口被阻塞,则设置一个入站规则,允许在两个系统上端口3306上进行网络通信。

这里有关于如何建立网络流量规则的更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44886383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档