系统
发布者ID:Ubuntu
描述:Ubuntu 16.04.5 LTS
发布:16.04
我的docker-compose.yml
version: "3"
services:
mongo:
image: mongo
container_name: mongodb
environment:
- MONGO_INITDB_ROOT_USERNAME=test1
- MONGO_INITDB_ROOT_PASSWORD=test1
- MONGO_DATA_DIR=/data/db
ports:
- 27017:27017
volumes:
- ./data/db:/data/db
command: [--auth]
我尝试访问mongo:
mongo -u test1 -p'test1' --port 27017 --authenticationDatabase admin
它给出了一些错误:
MongoDB shell version: 2.6.10
connecting to: 127.0.0.1:27017/test
2019-01-06T17:06:39.987+0700 Error: 2 { ok: 0.0, errmsg: "Auth mechanism not specified", code: 2, codeName: "BadValue" } at src/mongo/shell/db.js:1287
exception: login failed
所以我尝试使用特定的身份验证机制:
mongo -u test1 -p'test1' --port 27017 --authenticationDatabase admin --authenticationMechanism SCRAM-SHA-1
它也会给出一些错误:
MongoDB shell version: 2.6.10
connecting to: 127.0.0.1:27017/test
2019-01-06T17:07:44.967+0700 Error: 2 SCRAM-SHA-1 mechanism support not compiled into client library. at src/mongo/shell/db.js:1287
exception: login failed
我对错误消息SCRAM-SHA-1 mechanism support not compiled into client library. at src/mongo/shell/db.js:1287
感到困惑。如何解决?
谢谢!
答案 0 :(得分:0)
您的MongoDB Shell是旧版本(2.6.10),不支持SCRAM-SHA-1机制。较新的版本(在撰写本文时,最新版本为4.0.3)支持该功能,并默认将其激活。
您很有可能使用mongodb
从官方Ubuntu仓库安装了sudo apt install mongodb
软件包。请按照the MongoDB documentation for installing on Ubuntu中的说明安装官方mongodb-org
软件包。
确保首先备份所有可能受卸载mongodb
软件包影响的数据。
别忘了先按照文档所示,使用以下命令卸载您已经安装的软件包:
sudo apt remove mongodb
sudo apt purge mongodb
答案 1 :(得分:0)
尝试在mongod.conf文件(/etc/mongod.conf)中添加以下提到的部分
setParameter:
authenticationMechanisms: PLAIN,SCRAM-SHA-256
enableLocalhostAuthBypass: false
在这里,我们将身份验证机制设置为普通或SCRAM-SHA-256。 “ enableLocalhostAuthBypass:false”将确保从本地主机连接时不要绕过身份验证。