|
今天在64位的windows7上,下载了一个mongoDB 2.0.2版,想做一个mongoDB的服务,设置几个用户来访问数据,结果设置了好几回,添加的用户总是以莫名其妙的消失告终,匿名依然可以连接mongo,身份认证完全不起作用。我在之前的1.8.4的版本已经做过一回这样的设置,这次还按以前的方法试:
打开一个cmd,先用运行mongod -dbpath D:\mongodb\data\database
再开一个cmd,运行mongo
use admin
db.addUser("username","password") ;
db.auth("username","password") ;
然后自己库加用户
use database
db.addUser("guest","******",true) ;
执行好后,停掉mongod后,用--auth --install来启动
(mongod.exe -logpath D:\mongodb\log\log.txt -logappend -dbpath D:\mongodb\data\database -directoryperdb --auth --install)
再次用cmd打开mongo加上参数
(mongo.exe database -u guest -p ******)
结果问题出现了,,,这样登录失败,
然后一点一点试,只用mongo,不加任何参数,居然可以连上,还可以执行各种操作,但是发现刚才加的用户没有了
use admin
show users
//空的
use database
show users
//也成了空的
试过了很多次之后,感觉应该是mongod加上--auth的参数后,之前添加好的user就会消失,我把数据都清掉了,直接运行了
(mongod.exe -logpath D:\mongodb\log\log.txt -logappend -dbpath D:\mongodb\data\database -directoryperdb --auth --install)
然后用mongo不加参数,依然可以连上库,这时,我开加用户admin的用户和database的用户,加好后,断掉了这个控制台,再次用mongo打开,发现再进行操作时,出现了未登录的错误提示,我一看,有戏了,用(mongo.exe database -u guest -p ******)连上库,用户生效了,可以操作,问题解决了。
所以感觉可能是2.0版本以后有了小改动,如果用--auth启动后,admin库中没有用户时,可以匿名连上mongo创建用户,如果创建成功库中有了用户后,--auth才会真正生效。 |
|
|