千家信息网

如何解决MongoDB couldn‘t add user: not authorized on ‘your db‘ to execute command的问题

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇内容主要讲解"如何解决MongoDB couldn't add user: not authorized on 'your db' to execute command的问题",感兴趣的朋友不妨来
千家信息网最后更新 2025年01月23日如何解决MongoDB couldn‘t add user: not authorized on ‘your db‘ to execute command的问题

本篇内容主要讲解"如何解决MongoDB couldn't add user: not authorized on 'your db' to execute command的问题",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何解决MongoDB couldn't add user: not authorized on 'your db' to execute command的问题"吧!

解决 :MongoDB couldn't add user: not authorized on 'your db' to execute command

二年前在服务器放的一个mongodb,现在早已经忘记了验证密码,进不去了。如今记录下恢复过程。

1. 先关闭mongodb进程:

方法一、 $ ./mongod --shutdown --dbpath /usr/local/mongo/data/db方法二、 杀进程$ ps -ef | grep mongo    #列出mongo的进程       5451  5014  0 09:35 pts/11   00:00:00 /bin/sh /usr/local/mongodb/mongodb-linux-x86_64-ubuntu1604-3.2.8/bin/startmongodb.sh       5452  5451  1 09:35 pts/11   00:00:03 ./mongod --dbpath /usr/local/mongodb/mongodb-linux-x86_64-ubuntu1604-3.2.8/data/db       5539  5028  0 09:41 pts/12   00:00:00 grep --color=auto mongo$ kill 5452

2.修改mongodb配置文件:

vi /etc/mongodb.conf

找到

security:
authorization ,设置值为 disabled

security:  authorization: disabled# authorization: enabled

3.重启数据库

带上数据库目录重启才管用,不然启动的是空数据库,之前的数据就都找不到了。

现在看看服务器上的磁盘使用情况:

# du -ak / |sort -nrk 1 |head25818080        /12535712        /var11605584        /var/lib6638668 /var/lib/docker6303520 /var/lib/docker/overlay24625676 /var/lib/mongodb4549080 /www3775880 /root3242504 /www/server3145744 /var/lib/mongodb/journal通过我分析/var/lib/mongodb 这个目录应该就是我以前设置的数据库目录# cd /var/lib/mongodb/ & ls -al[1] 7142total 1327156drwxr-xr-x  4 mongodb mongodb      4096 Sep  8 15:56 .drwxr-xr-x 48 root    root         4096 Dec  5  2019 ..-rw-------  1 root    root     67108864 Nov  7  2018 admin.0-rw-------  1 root    root     16777216 Nov  7  2018 admin.ns-rw-------  1 root    root     67108864 Nov  8  2018 aoWechat.0-rw-------  1 root    root     16777216 Nov  8  2018 aoWechat.ns-rw-------  1 root    root     67108864 Nov  6  2019 aoWeixin.0-rw-------  1 root    root     16777216 Oct 28  2019 aoWeixin.nsdrwxr-xr-x  2 root    root         4096 Sep  8 16:12 diagnostic.datadrwxr-xr-x  2 mongodb mongodb      4096 Sep  8 16:07 journal-rw-------  1 mongodb mongodb  67108864 Sep  8 16:07 local.0-rw-------  1 mongodb mongodb  16777216 Sep  8 16:07 local.ns-rwxr-xr-x  1 mongodb mongodb         5 Sep  8 16:07 mongod.lock-rw-------  1 root    root     67108864 Oct  1  2019 chat.0-rw-------  1 root    root    134217728 Aug 20  2018 chat.1-rw-------  1 root    root    268435456 Oct  1  2019 chat.2-rw-------  1 root    root    536870912 Oct  1  2019 chat.3-rw-------  1 root    root     16777216 Oct  1  2019 chat.ns-rw-r--r--  1 root    root           69 Aug 14  2018 storage.bson

数据库目录找到了,现在带目录启动数据库

# mongod --dbpath /var/lib/mongodb

这个命令只是在终端临时启动数据库,启动之后另开一个终端窗口,进去登陆上数据库

#:mongo> > show dbsadmin         0.078GBaoWechat   0.078GBaoWeixin  0.078GBlocal         0.078GBsmart     0.953GB

创建一个超级用户:

db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})

退出数据库,exit ,关闭数据库。

修改配置文件启动认证模式。

vi /etc/mongod.conf


找到

security:
authorization ,设置值为 enabled

security:  authorization: enabled

现在我完整的配置如下:

# mongod.conf# for documentation of all options, see:#   http://docs.mongodb.org/manual/reference/configuration-options/# Where and how to store data.storage:  dbPath: /var/lib/mongodb  journal:    enabled: truesystemLog:  destination: file  logAppend: true  path: /var/log/mongodb/mongod.log# network interfacesnet:  port: 27017  bindIp: 0.0.0.0security:  authorization: enabled# authorization: disabled# authorization: enabledprocessManagement:  fork: true

正式启动数据库,恢复完成。

/usr/bin/mongod -f /etc/mongod.conf

进入数据库去看看,能查看数据了不。

# mongoMongoDB shell version: 3.2.20connecting to: test> use adminswitched to db admin> db.auth('root','123456')1> show tablessystem.indexessystem.userssystem.version> show dbsadmin         0.078GBaohuoWechat   0.078GBaoshuoWeixin  0.078GBlocal         0.078GBsmartchat     0.953GB>

到此,相信大家对"如何解决MongoDB couldn't add user: not authorized on 'your db' to execute command的问题"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0