如何解决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