(一)下载和安装
环境:mongodb服务 4.2.5
之后博客mongodb模块都是基于此环境进行操作
安装包(一个本地服务器和工具连接):
链接:https://pan.baidu.com/s/1LCqAqaMaZLYFJakD3xPvXg
提取码:3rzk
安装文档参考:https://www.cnblogs.com/nangezi/p/11279401.html
首先先关闭防火墙:
控制面板–>系统安全
安装唯一不同的是:我在与bin目录同级之下建一个data,data中建db和logs
环境变量:在系统变量的Path中加入 D:\mongodb\bin
(二)开启(两种方式)关闭服务和客户端连接工具
(1)开启服务:
mongod -dbpath D:\mongodb\mongodbServer\data\db (每次都是这样启动)
开启客户端连接工具:
另外在打开一个bin的命令窗口随后:
输入 mongo
(2)以授权方式启动mongodb服务,并验证权限
设置配置文件mongod.cfg(在mongo安装目录的bin目录下),以官方方式打开授权认证:
net start mongodb
开启客户端带验证密码(这一步只是作为验证只要服务开启了,在客户端中连接就行了,输入验证账户和密码):
mongo --port 27017 -u "admin" --authenticationDatabase "admin" -p
关闭服务(admin数据库服务关闭后其他都关闭了):
具体可以参考https://www.cnblogs.com/jinhengyu/p/10257805.html
在登录验证命令窗口进行关闭服务
use admin
db.shutdownServer()
Mongodb是基于角色来管理权限的:
(三) 给每个库设置账户和密码(添加 dbOwner 权限。自己的账户和面有道云笔记中有):
1、同样免密开启数据库服务
2、链接到某一个库
> use cc_cs
switched to db cczyy_cs
3、为该库设置账户
> db.createUser({
'user':'zhangsan', //链接数据库的账户名
'pwd':'lisi', //密码
'roles':[
{
role:'dbOwner',
db:'cc_cs'
}
]
})
Successfully added user: {
"user" : "zhangsan",
"roles" : [
{
"role" : "dbOwner",
"db" : "cc_cs"
}
]
}
4、连接到 admin库(设立的账号密码全得切换admin在看),查看你刚才创建的cc_cs库的账户
> use admin
switched to db admin
> db.system.users.find().pretty()
{
// _id字段:cc_cs 是当前用户所属的数据库的名称;
// zhangsan 是你设置的账户名
"_id" : "cc_cs.zhangsan",
"user" : "zhangsan",
"db" : "cc_cs",
"credentials" : {
"SCRAM-SHA-1" : {
"iterationCount" : 10000,
"salt" : "dGurhbdFOAtEvjvf+IrWOg==",
"storedKey" : "4tU/9+R6sQSL+4QvhmykRAUwioQ=",
"serverKey" : "MmHTwuP2lnkO8LpFFEArrFE7VFY="
}
},
"roles" : [
{
"role" : "dbOwner",
"db" : "cc_cs"
}
]
}
5、关闭mongo并有密启动
use admin
db.shutdownServer()
6、链接数据库以后
> use cc_cs
switch cc_cs
> db.auth('zhangsan','lisi')
1 //验证成功
>show collections
user
students
查看账户和密码:(先切换到admin)
db.system.users.find().pretty()
删除一个库的账号和密码:
db.system.users.remove({'user':'adminUser'})
代码:
//MongoCredential credential = MongoCredential.createCredential("admin", "admin", "123456".toCharArray());
MongoCredential credential = MongoCredential.createCredential("LJ", "mongodb_richfit", "hlr2261226HLR".toCharArray());
//连接到Mongodb服务
ServerAddress serverAddress = new ServerAddress("127.0.0.1",27017);
com.mongodb.MongoClient mongoClient = new com.mongodb.MongoClient(serverAddress, Arrays.asList(credential));
MongoDatabase database = mongoClient.getDatabase("richfit_mongodb");
MongoCollection<Document> collection = database.getCollection("byuser");
(四)命令操作
在打开mongo的cmd命令窗口:
// 显示所有的数据库
show dbs
//切换到admin 这个是切换到哪个数据库 (admin和其他都行)
//切换到这个库操作表时必须保证有这个表不然数据为空
use admin
//创建数据库账户和密码(只在安装时操作一次)
db.createUser({user:'root',pwd:'root',roles:['userAdminAnyDatabase']})
db.auth('root','root')
随后在在里面用命令操作数据: