我使用mongodb指南针通过ssh连接到mongodb,但我发现数据库端口是29694,我不知道它来自哪里。
在node.js中,我只能通过该端口的ssh连接到数据库。
当我重新启动服务器时,我发现端口正在改变。
我用来连接数据库的代码:
var config = {
username: 'root',
host:'118.XXX.XXX.X',
port:22,
dstHost: '118.XXX.XXX.X',
dstPort: 27017,
passphrase: 'XXXX'
};
(async ()=>{
try {
await tunnel(config)
await mongoose.connect('mongodb://localhost:29694/xxxxx')
}
catch(e){
console.log(`${e}`)
}
await console.log('connected')
})()
我真的刚刚开始编程。我不知道问题出在哪里。
答案 0 :(得分:0)
我想出来了。对不起,我缺乏一些基本的SSH知识。
正确的代码是:
var config = {
username: 'root',
password: 'xxxx',
host:'118.xxx.xxx.xxx',
port:22,
dstHost: '127.0.0.1',
dstPort: 27017,
localHost:'127.0.0.1',
localPort:27000
};
(async ()=>{
try {
await tunnel(config)
await mongoose.connect('mongodb://localhost:27000/xxxx')
}
catch(e){
console.log(`${e}`)
}
})()
我发现this article对我了解ssh端口转发非常有帮助。