分享

mongodb的远程联接问题

xhhuang1979 发表于 2013-10-17 21:37:50 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 5074
小弟初学mongodb.
安装启动均没问题,我用的是32位WIN版本的
1.mongod --dbpath c:/mongodb/data/db   无认证,本地和远程均无问题。
2.mongod --auth --dbpath c:/mongodb/data/db
加上认证后,
我在test中加了用户,本地联接没问题。远程无法联接,提示need login 报错。
如果在admin加上用户,本地也无法联接了。
java的code如下:
        Mongo mg = new Mongo("127.0.0.1",27017);
        DB db = mg.getDB("test");
        boolean auth = db.authenticate("admin", "admin".toCharArray());  
              
               
               

已有(5)人评论

跳转到指定楼层
xhhuang1979 发表于 2013-10-17 21:38:35

            admin中加的帐号是admin/admin
test中加的帐号是test/test
这也就意味着admin是超级帐号可以访问test db ,但是auth返回的是false
用test认证boolean auth = db.authenticate("test", "test".toCharArray());返回是true但是下面报错还是一样的。
Exception in thread "main" com.mongodb.CommandResult$CommandFailure: command failed [listDatabases]: { "serverUsed" : "/127.0.0.1:27017" , "errmsg" : "need to login" , "ok" : 0.0}
        at com.mongodb.CommandResult.getException(CommandResult.java:88)
        at com.mongodb.CommandResult.throwOnError(CommandResult.java:134)
        at com.mongodb.Mongo.getDatabaseNames(Mongo.java:374)
        at nosql.Mogobean.main(Mogobean.java:73)
        
回复

使用道具 举报

syq17496152 发表于 2013-10-17 21:39:09

            遇到同样的问题,求解,楼主现在解决了吗?我最近在学习mongodb,也遇到你说的问题了
        
回复

使用道具 举报

strike2368168 发表于 2013-10-17 21:40:09

            getDatabaseNames这个方法是返回Mongodb下所库,用户是针对单个DB库来说的,而且连接Mongodb时是没有进行用户验证的。
        
回复

使用道具 举报

visualbasic2000 发表于 2013-10-17 21:40:44

            用户可以使针对单个DB的,不过,如果这个库是admin的话,也是可以取得的。
至于为什么Java下面会出错,我不是很清楚,如果是C#的话,可以帮忙。。。
        
回复

使用道具 举报

xhhuang1979 发表于 2013-10-17 21:41:20

            到目前还没解决,因为在公司内部用,没加认证,我想换个64位的,看看有没有这样的问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条