mongodb远程身份验证失败Mongod v4

时间:2018-11-26 15:56:26

标签: mongodb mongoose mongodb-query mongoid

我最近在配置如下的Windows 2016服务器之一上安装了mongodb并以

的身份运行mongod
  

mongod --config C:\ mongo_db \ config \ mongo_db_configuration.conf --auth

--config file
net:
    # MongoDB server listening port
    #bindIp: 0.0.0.0,192.168.43.250
    port: 27017
    bindIpAll: true
storage:
    # Data store directory
    dbPath: "C:\\mongo_db\\db"
    mmapv1:
        # Reduce data files size and journal files size
        smallFiles: true
systemLog:
    # Write logs to log file
    destination: file
    path: "C:\\mongo_db\\logs\\mongodb.log"
security:
  authorization: enabled

我们已经在管理数据库中创建了root用户

MongoDB Enterprise > db.runCommand({connectionStatus:1})
{
        "authInfo" : {
                "authenticatedUsers" : [
                        {
                                "user" : "root",
                                "db" : "admin"
                        }
                ],
                "authenticatedUserRoles" : [
                        {
                                "role" : "dbAdminAnyDatabase",
                                "db" : "admin"
                        },
                        {
                                "role" : "root",
                                "db" : "admin"
                        }
                ]
        },
        "ok" : 1
}

我能够本地连接到mongod实例(mongo --port 27017 -u "root" -p "12345" --authenticationDatabase admin),但是远程连接时出错。服务器防火墙已禁用。

"C:\Mongodb>mongo.exe 192.168.0.171:27017/admin -u root -p 12345
MongoDB shell version v4.0.4
connecting to: mongodb://192.168.0.171:27017/admin
Implicit session: session { "id" : UUID("c68e9dd5-6f7b-4356-bc3e-688a7e2b3e1d") }
MongoDB server version: 4.0.4
2018-11-26T23:50:47.534+0800 E QUERY    [js] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1685:20
@(auth):6:1
@(auth):1:2
exception: login failed"    

2 个答案:

答案 0 :(得分:1)

当我遇到同样的问题时,我偶然发现了这一点。我从MongoDB Shell版本v3.6.9连接到MongoDB服务器版本4.2.6。如果其他人像我一样发现了这个问题,则可以使用以下语法:

long

答案 1 :(得分:0)

我的虚拟机也遇到类似的问题。我有2个Linux和1个Windows计算机(它们远程连接到Windows计算机)。假设Linux A具有带有凭据的mongo。当我尝试从Windows计算机登录时,遇到了您提到的相同错误。

但是,当我将mongo从linux B连接到linux A时,我可以使用以下命令从shell成功连接:

mongo --host 192.168.1.6 --port 27017 -u username -p 'pwd'

我也从Windows使用完全相同的命令,但是以某种方式无法登录。也许此命令可以在您的环境中运行,但也要等待适当的解决方案。