关于用java连接MongDB,安全认证问题
最近在搞MondDB,从安装到java连接Mondb,学了3天了。今天遇到了一个问题,就是用java连接MongDB,时候若没开启安全认证,则一切正常,若开启了安全认证,发现老是:
boolean auth = db.authenticate(USER_NAME, PWD.toCharArray());
auth显示为:false
好了问题出来了说说我的代码场景(本人用的mngdb的版本是3.0.5):
首先免开启认证,开启mongdb服务:
mongod --dbpath=F:\Users\mongdb
然后进入admin库:
use admin
在设置超级管理员权限:
最后开启安全认证: mongod --dbpath=F:\Users\mongdb --auth
用root登录:db.auth("root", "123456")
进入mydb库,常见读写用户:
测试过,用admin登录,在控制台上进行插入数据是可以,以上有看不懂的随时问我。接下来就是头疼的问题,用java连接mongdb时候的问题:
看一段java代码:
测试代码:
然后就老是报错说权限不组,auth也老是显示为false。 I don't know what 's with my code!
boolean auth = db.authenticate(USER_NAME, PWD.toCharArray());
auth显示为:false
好了问题出来了说说我的代码场景(本人用的mngdb的版本是3.0.5):
首先免开启认证,开启mongdb服务:
mongod --dbpath=F:\Users\mongdb
然后进入admin库:
use admin
在设置超级管理员权限:
db.createUser(
{
user: "root",
pwd: "123456",
roles:
[
{role:"userAdminAnyDatabase",db:"admin"},
"readWrite"
]
}
) 最后开启安全认证: mongod --dbpath=F:\Users\mongdb --auth
用root登录:db.auth("root", "123456")
进入mydb库,常见读写用户:
db.createUser(
{
user: "admin",
pwd: "123456",
roles:
[
{role:"readWrite",db:"mydb"}
]
}
) 测试过,用admin登录,在控制台上进行插入数据是可以,以上有看不懂的随时问我。接下来就是头疼的问题,用java连接mongdb时候的问题:
看一段java代码:
package com.lgy.util;
import java.net.UnknownHostException;
import java.util.Set;
import com.mongodb.DB;
import com.mongodb.MongoClient;
public class MongDBUtils {
public final static String IP = "localhost";
public final static Integer PORT = 27017;
public final static String USER_NAME = "admin";
public final static String PWD = "123456";
public final static String collectionName = "mydb";
public static DB getDB() {
MongoClient mongoClient;
DB db = null;
try {
mongoClient = new MongoClient(IP, PORT);
// mongoClient = new MongoClient();
db = mongoClient.getDB(collectionName);
boolean auth = db.authenticate(USER_NAME, PWD.toCharArray());
System.out.println(auth);
} catch (UnknownHostException e) {
e.printStackTrace();
}
return db;
}
}测试代码:
public class Test {
//测试连接状态
public static void init() {
DB db = MongDBUtils.getDB();
System.out.println(db.getCollectionNames().size());
}
public static void main(String[] args) {
init();
}
}然后就老是报错说权限不组,auth也老是显示为false。 I don't know what 's with my code!
...全文
相关推荐
java连接mongdb jar包
Java连接MongoDB主要依赖于MongoDB的Java驱动程序,这是一个允许Java应用程序与MongoDB数据库进行交互的库。
Java核心面试知识集—MongDB面试题.md
Java核心面试知识集—MongDB面试题
最新可用的hive mongdb jar 共三个
hive 加载mongdb数据所需的三个包mongo-hadoop-core-2.0.2.jarmongo-hadoop-hive-2.0.0.jarmongo-java-driver-3.6.1.j
mongdb.zip windows 官网上有,但是下载速度慢。解压之后就和官网一样
**连接客户端**:使用`mongo`命令行客户端连接到MongoDB服务器,或者使用MongoDB Compass图形界面工具。5.
mysql+mongDB整合测试
- 链接两个数据库需要理解它们的API、驱动程序以及连接池管理,例如JDBC for MySQL和MongoDB Java Driver。


