2016-09-15 107 views
0

在我的应用程序中,我正在使用与猫鼬的节点来连接到MongoDB。 MongoDB实例在Azure中。我需要上述所以我可以直接连接到数据库。查找Robomongo连接设置的连接字符串到Azure MongoDB

看着这之后做到这一点:How to connect Robomongo to MongoDB

我使用Robomongo为客户做到这一点。我如何找到连接字符串?

编辑:当前的IP和端口导致'网络不可达'。我已经尝试在我的节点应用程序中记录mongodb mongoose连接变​​量,并且使用这些细节也不起作用。

+0

不确定你的意思。您在哪里托管(或安装)MongoDB?您需要从那里获取连接字符串,并将其与robomongo配合使用。 –

+0

编辑的问题,其设置在azure – lxm7

+0

你配置MongoDB的配置外部访问?你是否通过入站安全规则(或通过经典虚拟机完成的端点)打开端口? –

回答

0

事实证明,Azure的是有那一天服务器的问题(!)。你可以在这里阅读更新:

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

另外,我用天蓝色的机器URL连接到蒙戈,当你创建一个新的机器,而不是IP,这我想是出于安全考虑通过Azure的产生。

因此,我使用了:nameofmymachine.cloudapp.net:27017并在SSH隧道选项卡(当然会使用IP)中添加详细信息以获得完整性。

0

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

在虚拟机中安装的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 [email protected]
  • 创建的端点端口27018位于Azure管理门户虚拟机的仪表板中

然后你可以通过下面的代码连接到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!") 
    });