我有兩個Mongo數據庫。一個是我的開發環境,一個生產這裏從我Robomongo安裝看出:Node.js使用Mongoose到MongoDB的SSH隧道
生產DB是SSH隧道到我的數字海洋虛擬服務器在這裏看到(細節有了明顯改變)。連接時,此設置工作正常/從我製作的網站:
我現在的工作在不同的/相關的項目,需要我本地機器連接到我的生產 DB,所以我認爲我需要使用類似tunnel-ssh的東西來完成它。我以this answer爲例,但是我要麼Error: (SSH) Channel open failure: open failed
要麼連接到我的Dev數據庫(當我使用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);
});
});
在此先感謝!
好吧,至少進展。評論這三個,現在我得到'錯誤:(SSH)頻道開放失敗:連接被拒絕。對你來說意味着什麼?關我進入Google機器... – jeremytripp
您沒有使用與您在屏幕截圖中顯示的端口相同的端口。因此請嘗試相應地改變它以匹配。您還需要更改連接字符串中的端口。 – mscdex
這是票。在今天上午閱讀你的評論之後5秒內痛苦地顯而易見並得到修復。非常感謝! – jeremytripp