在我的应用程序中,我使用带有mongoose的节点连接到MongoDB。 MongoDB实例位于Azure中。我需要上面所以我可以直接连接到数据库。
看了这个之后:How to connect Robomongo to MongoDB
我正在使用Robomongo为客户端执行此操作。我如何找到连接字符串?
编辑:目前IP和端口导致'网络无法访问'。我已经尝试在我的节点应用程序中记录mongodb mongoose连接变量,并且使用这些细节也不起作用。
答案 0 :(得分:0)
您可以尝试在mongodb服务器VM中创建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
创建端点
然后您可以通过以下代码连接到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!")
});
答案 1 :(得分:0)
事实证明,Azure当天有服务器问题(!)。您可以在此处阅读更新:
https://azure.microsoft.com/en-gb/status/
此外,我使用Azure计算机URL连接到mongo,这是由Azure在创建新计算机时生成的,而不是IP,我想这是出于安全原因。
所以我使用了nameofmymachine.cloudapp.net:27017
并在SSH隧道标签下添加了详细信息(当然会使用IP)以保证完整性。