我用Mongolab(MongoDB托管服务)托管我的数据库。他们最近(大约一个月前)将MongoDB进程更新为3.0。从那以后,每当我尝试使用mongoshell登陆,出现这种情况:Mongoshell在登录尝试时给出错误代码18 MongoLab
mongo ds.mongolab.com:12345/mydb123 -u user123 -p pass123
MongoDB shell version: 2.6.11
connecting to: ds.mongolab.com:12345/mydb123
2015-11-08T10:00:12.356-0800 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:1292 exception: login failed
这是我已经试过:
我首先想到的问题是一个版本一个(很懂事,我想),所以我更新了我使用的2.6.11版本。根据MongoDB文档,这应该与3.x兼容。
我试着将其他参数传递给认证字符串(如--authenticationDatabase admin)。没有工作。
通过Mongolab站点上的GUI界面检查我的凭证(即usern + pass)和设置。没有明显的问题。
请帮忙!我需要使用壳...
您是否尝试过使用mongo shell的3.0.x版本? MongoLab的3.0数据库使用SCRAM-SHA-1认证,而2.6.x mongo shell不支持该认证。 – pneumee
我真的很尴尬...这样做!因为Fedora的包管理器(yum)似乎没有atm,所以我不得不跳过很多圈才能获得3.0.x。我最终从https://repo.mongodb.org/yum/redhat/6/mongodb-org/3.0/x86_64/RPMS/下载了所有软件包,然后执行yum --nogpgcheck localinstall ./Downloads/mongodb-org - *。谢谢!! – theproject