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