执行MongoDB的show dbs命令提示unauthorized问题求助
问题原因
新版MongoDB Community Server默认启用了身份认证,未登录认证的情况下没有权限查看所有数据库,而部分旧教程可能基于未开启认证的环境制作,所以直接执行show dbs能看到结果。
解决步骤
停止MongoDB服务
打开管理员权限的CMD,执行:net stop MongoDB(如果服务名不是
MongoDB,可以通过services.msc查看你的MongoDB服务名称)临时以无授权模式启动mongod
执行命令(替换为你的实际数据库存储路径,默认路径一般是C:\Program Files\MongoDB\Server\你的版本号\data):mongod --dbpath "你的数据库路径" --noauth保持这个窗口开启,不要关闭。
创建管理员账号
重新打开一个CMD窗口,输入mongosh进入Shell,依次执行以下命令:// 切换到admin数据库 use admin // 创建拥有最高权限的管理员账号 db.createUser({ user: "admin", // 自定义用户名 pwd: "你的安全密码", // 自定义密码 roles: [{ role: "root", db: "admin" }] })执行成功会返回
{ ok: 1 }的提示。重启MongoDB服务
关闭刚才运行mongod --noauth的窗口,回到管理员CMD执行:net start MongoDB登录认证并验证
- 方式一:登录时直接携带认证信息
mongosh --username admin --password 你的密码 --authenticationDatabase admin - 方式二:进入Shell后再认证
use admin db.auth("admin", "你的密码")
认证成功后执行
show dbs,就能正常看到admin等数据库列表了。- 方式一:登录时直接携带认证信息
内容的提问来源于stack exchange,提问作者MR.Learner
相关产品推荐
相关产品推荐

