如何解决MongoDBcouldn‘tadduser:notauthorizedon‘yourdb‘toexecutecommand的问题

本篇内容主要讲解“如何解决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的问题”吧!

创新互联公司主营平和网站建设的网络公司,主营网站建设方案,手机APP定制开发,平和h5微信小程序开发搭建,平和网站营销推广欢迎平和等地区企业咨询

解决 :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 |head

25818080	/
12535712	/var
11605584	/var/lib
6638668	/var/lib/docker
6303520	/var/lib/docker/overlay2
4625676	/var/lib/mongodb
4549080	/www
3775880	/root
3242504	/www/server
3145744	/var/lib/mongodb/journal

通过我分析/var/lib/mongodb 这个目录应该就是我以前设置的数据库目录
# cd /var/lib/mongodb/ & ls -al
[1] 7142
total 1327156
drwxr-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.ns
drwxr-xr-x  2 root    root         4096 Sep  8 16:12 diagnostic.data
drwxr-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 dbs
admin         0.078GB
aoWechat   0.078GB
aoWeixin  0.078GB
local         0.078GB
smart     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: true

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

security:
  authorization: enabled
# authorization: disabled
# authorization: enabled

processManagement:
  fork: true

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

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

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

# mongo
MongoDB shell version: 3.2.20
connecting to: test
> use admin
switched to db admin
> db.auth('root','123456')
1
> show tables
system.indexes
system.users
system.version
> show dbs
admin         0.078GB
aohuoWechat   0.078GB
aoshuoWeixin  0.078GB
local         0.078GB
smartchat     0.953GB
>

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


分享标题:如何解决MongoDBcouldn‘tadduser:notauthorizedon‘yourdb‘toexecutecommand的问题
分享链接:http://scyanting.com/article/gcjhcj.html