我是mongodb的新手,请原谅我的语言。 我已经将应用程序的后端部署到了heroku,并尝试将其与Mongodb连接。 我遵循的步骤如下。
我在mongodb.com上创建了一个项目,添加了一个用户(角色为 atlasAdmin @ admin ),添加了IP。
我将其连接到MongoDB Compass,并使用指南针添加了所需的数据
我使用了connect your application
,并在编辑用户名,密码和dbname后将其保存在heroku config环境变量的字符串下面。
mongodb+srv://<username>:<password>@vidly.5pn3u.azure.mongodb.net/<dbname>?retryWrites=true&w=majority
但是它给出错误为'MongoError: (Unauthorized) not authorized on admin to execute command
我尝试了以下选项来修复错误:
mongo "mongodb+srv://vidly.5pn3u.azure.mongodb.net/<dbname>" --username <username>
连接到mongo,然后use admin
db.createUser(
{
user: 'admin',
pwd: 'password',
roles: [ { role: 'root', db: 'admin' } ]
}
);
exit;
但是它给出了错误:uncaught exception: Error: couldn't add user: (Unauthorized) not authorized on admin to execute command
cloud.mongodb.com
上,我将mongodb服务器上的角色更改为(dbAdminAnyDatabase @ admin,backup @ admin,readWriteAnyDatabase @ admin,clusterMonitor @ admin)
但它给出了相同的错误。请告知如何解决此错误?
编辑:
我能够在外壳上使用connect with the mongo shell
使用mongo show dbs
访问数据库,但无法创建用户,并且connect using mongodb compass
可以在指南针中编辑数据库。
但是,当我尝试使用connect your application
选项时,会出现此错误。
添加的用户具有这些访问权限(dbAdminAnyDatabase @ admin,backup @ admin,readWriteAnyDatabase @ admin,clusterMonitor @ admin),即使该用户无法使用。
答案 0 :(得分:0)
您需要安装最新版本的猫鼬。 例如,您可以使用“纱线添加猫鼬”来安装猫鼬。