无法通过Mongoose槽ssh连接到MongoDatabase

问题描述 投票:0回答:1

我已经成功设置了指南针以连接到数据库。现在,我想将猫鼬连接到它。

通过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
mongodb mongoose ssh-tunnel
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.