我已经成功设置了指南针以连接到数据库。现在,我想将猫鼬连接到它。
通过SSH隧道建立连接。这是配置:
var config = {
username:'admin',
host:'ssh.server.com',
privateKey:require('fs').readFileSync(path.join("C:", "Users", "rojer", ".ssh", "rkm.priv")),
port: 222,
dstHost: 'mongodb-db2',
dstPort: 27011,
password:'secret',
};
var server = tunnel(config, function (error, server) {
if(error){
console.log("SSH connection error: " + error);
} else {
console.log('SSH ok');
}
mongoose.connect('mongodb://mongodb-db2:27017', {
useNewUrlParser: true,
useUnifiedTopology: true,
authSource: "admin",
auth: {
user: 'admin',
password: 'secret',
}
}, function(error){
if(error){
console.log(`ERROR:::: ${error}`);
}else{
console.log(`Success!!!`);
}
})
});
运行脚本后,我看到以下消息:
$ node mongo.js
SSH ok
ERROR:::: MongooseTimeoutError: Server selection timed out after 30000 ms
登录到远程服务器,我可以通过以下方式连接数据库:
mongo --host mongodb-db2 -uadmin -psecret --authenticationDatabase=admin