我有两个Mongo DB.一个用于我的开发环境,一个用于生产,如我在Robomongo设置中所见:
生产数据库通过SSH隧道连接到我的数字海洋虚拟服务器,如此处所示(具体情况已经明显改变).连接到我的生产网站/从我的生产网站连接时此设置正常:
我现在正在开发一个不同/相关的项目,需要将我的本地机器连接到我的生产数据库,所以我认为我需要使用像tunnel-ssh这样的东西来完成它.我已经按照this answer作为示例,但我要么得到错误:(SSH)通道打开失败:打开失败或者它连接到我的Dev db(当我使用27017作为我的dstHost / dstPort / localPort时).我一定在考虑这个错误,或者我对我的配置感到愚蠢.我是公认的Mongo / Mongoose新手,所以两者都是可能的.有什么建议?
var fs = require("fs"); var mongoose = require('mongoose'); var tunnel = require('tunnel-ssh'); //===== db connection ===== var config = { username:'my.username',host:'my.ip.address',agent : process.env.SSH_AUTH_SOCK,privateKey:require('fs').readFileSync('/Users/myusername/.ssh/id_rsa'),port:22,dstHost:'mongodb://localhost:27000/mydbname',dstPort:27000,localHost:'127.0.0.1',password:'mypassword',localPort: 27000 }; var server = tunnel(config,function (error,server) { if(error){ console.log("SSH connection error: " + error); } mongoose.connect('mongodb://localhost:27000/mydbname'); var db = mongoose.connection; db.on('error',console.error.bind(console,'DB connection error:')); db.once('open',function() { // we're connected! console.log("DB connection successful"); // console.log(server); }); });
提前致谢!