0

在我的应用程序中,我使用带有猫鼬的节点来连接到 MongoDB。MongoDB 实例位于 Azure 中。我需要上面的,所以我可以直接连接到数据库。

在看了这个之后:如何将 Robomongo 连接到 MongoDB

我正在为客户使用 Robomongo 来执行此操作。我如何找到连接字符串?

编辑:当前 IP 和端口导致“网络无法访问”。我已经尝试在我的节点应用程序中记录 mongodb mongoose 连接变量,并且使用这些详细信息也不起作用。

4

2 回答 2

0

您可以尝试在您的 mongodb 服务器虚拟机中创建一个 SSH 隧道,并通过此隧道连接 mongodb 服务器。您可以在https://azure.microsoft.com/en-us/blog/create-your-own-dedicated-mysql-server-for-your-azure-websites/参考类似的场景。

在VM中安装mongodb后,请尝试以下命令,最后在我这边工作正常:

  • sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 27017 -j ACCEPT
  • sudo netstat -anltp|grep :27017
  • sudo ssh -fNg -L 27017:127.0.0.1:27018 azurevmuser@servername
  • 27018在 Azure 管理门户中的 VM 仪表板中为端口创建终结点

然后就可以通过以下代码连接到mongodb了:

 var mongoose = require('mongoose');
    mongoose.connect('mongodb://<your_server_vm>.cloudapp.net:27018/test');
    var db = mongoose.connection;
    db.on('error', console.error.bind(console, 'connection error:'));
    db.once('open', function() {
     console.log("we're connected!")
    });
于 2016-09-16T03:02:36.880 回答
0

事实证明,Azure 那天遇到了服务器问题(!)。您可以在此处阅读更新:

https://azure.microsoft.com/en-gb/status/

此外,我使用 Azure 机器 URL 连接到由 Azure 在创建新机器时生成的 mongo,而不是 IP,我认为这是出于安全原因。

所以我使用:nameofmymachine.cloudapp.net:27017并在 SSH 隧道选项卡下添加了详细信息(当然将使用 IP)以确保完整性。

于 2016-10-03T09:58:44.220 回答