开门见山
mongodb对用户设置的一些操作:
可参考 https://blog.csdn.net/jiestyle21/article/details/51819610
但是以上这篇文章createUser时写错了,正确写法是
db.createUser({user:"testadmin",pwd:"123456",roles:[{"role":"readWrite","db":"test"}]})
也可参考 https://blog.csdn.net/wuzuodingfeng/article/details/72869894 比较详细
或者这篇 https://blog.csdn.net/jianleking/article/details/79715097
- 重点:出了超级用户admin数据库之外,如何新开一个数据库?
解决:
参考 https://www.cnblogs.com/yulinfeng/p/10226977.html
即一个数据库和一个user是绑定的,新开一个数据库就得新设一个user
再参考这个 https://blog.csdn.net/u013862444/article/details/80613376
同时附上两张图,以提醒自己如何做,切换到不同数据库下,e.g.先进入admin,认证一下,再用use new_db_name创建新库,用createUser创建新user与新库的契约,就行了。若还行继续新建库,则又切换回admin,认证,再继续
https://blog.csdn.net/a13662080711/article/details/79549212
ps: 删除指定库下的指定用户操作:
https://blog.csdn.net/qq_38839677/article/details/82421917
安装与常规操作:
参考 https://blog.csdn.net/weixin_40208575/article/details/81385648
番外:
1、我自己的windows下的mongodb服务进程好像已经配置为系统服务了(之前安装做的),而且mongo可执行文件也加入环境变量了,所以每次需要打开mongodb只需敲入mongo即可
2、第一次创建数据库的话,先创建admin:
use admin
db.createUser({user:"root",pwd:"root",roles:[{"role":"userAdminAnyDatabase","db":"admin"}]})
db.auth("root", "root")
db.createUser({user:"jdh11",pwd:"123456",roles:[{"role":"readWrite","db":"test"}]})
坑:
** 有时候会遇到认证错误,网上找到的原因分析与解决方案:
problem: 开启认证模式之后,如果将用户名密码写入url中 默认连接的数据库是admin,事实上我所连接的数据库并不是admin 所以 用户名和密码是无效的 所以导致认证失败
fix: 在URL中指定所要连接的数据库 或者是 在 选择数据库之后 ( db = clint['log_fieldmap ']该代码之后 ) 添加认证 db.authenticate('username, 'pwd')
----------------------------------
** 对于在python中使用pymongo提示认证失败,解决如下:
参考 https://blog.csdn.net/zaishijizhidian/article/details/80075800
添加mongodb的用户名和密码,
但是好像按照这篇来写的话也会有错,正确写法应该是:
client=pymongo.MongoClient('mongodb://user:password@localhost:27017/')
参考:https://www.cnblogs.com/Wang-Y/p/9371143.html
另外,在pymongo中一般是先用client=pymongo.MongoClient('mongodb://user:password@localhost:27017/')
来连接的是超级用户admin,再对其他数据库进行选择操作
番外:
robomongo可视化工具的安装:
https://www.cnblogs.com/microman/p/6207226.html
一般操作:
打开robomongo可执行文件robo3t,点击create,把name改成你想连接的数据库名;再点击authentication验证用户(如果你的mongodb配置设置了authentication是enable的话才执行这步),把name框里的admin改成你想连接的数据库名,接着填写user和pwd,save,最后双击该数据库就行了