mongodb远程认证失败Mongod v4
Posted
技术标签:
【中文标题】mongodb远程认证失败Mongod v4【英文标题】:mongodb remote authentication failure Mongod v4 【发布时间】:2019-04-28 07:35:44 【问题描述】:我最近在我们的一台 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
我们在 admin 数据库中创建了一个 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"
【问题讨论】:
【参考方案1】:我的虚拟机也有类似问题。我有 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 中也使用完全相同的命令,但不知何故无法登录。也许此命令可以在您的环境中运行,但也需要等待适当的解决方案。
【讨论】:
【参考方案2】:当我遇到同样的问题时,我偶然发现了这个。我从 MongoDB shell 版本 v3.6.9 连接到 MongoDB 服务器版本 4.2.6。如果其他人像我一样发现这个问题,下面是有效的语法:
mongo --host mongodb://username:password@IP:PORT/ --authenticationDatabase admin
【讨论】:
以上是关于mongodb远程认证失败Mongod v4的主要内容,如果未能解决你的问题,请参考以下文章