安装mongodb
下载安装shell(终端,可选)和server(服务)
下载rpm包 (Linux Contos7 )
wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/mongodb-org-server-4.2.0-1.el7.x86_64.rpm
安装
rpm -ivh mongodb-org-server-4.4.4-1.el7.x86_64.rpm
启动
systemctl start mongod
查看日志
tail -f /var/log/mongodb/mongod.log
其他命令
查看状态:systemctl status mongod
停止服务:systemctl stop mongod
重启服务 :systemctl restart mongod
创建超级管理员
# 需要先安装shell
# 下载
wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/mongodb-org-shell-4.2.20-1.el7.x86_64.rpm
# 安装
rpm -ivh mongodb-org-shell-4.2.20-1.el7.x86_64.rpm
# 进入终端
mongo
# 切换到admin数据库
use admin
# 创建root用户赋予root角色
db.createUser({user:"root", pwd: "123456", roles: ["root"]})
# 验证创建的用户
db.auth("root", "123456")
roles角色说明
内建的角色
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system
角色说明:
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
创建数据库及这个库所有权限的用户
use demo # 切换/创建自己的数据库(存在切换、否则创建)
# dbOwner:表示在当前数据库中可以执行任意操作
# 这里创建的test用户只对demo这个数据库有用
# 当然也可以在admin数据库创建用户,然后登录的时候需要admin数据库认证
# 这里我们是在demo数据库创建的用户,所以后面登录的时候认证的数据库是demo
db.createUser({user: "test", pwd: "123456", roles: [{ role: "dbOwner", db: "demo" }]})
#添加一条数据,数据库创建完毕。如果此时什么都不操作而退出的话,此数据库会被系统删除。
db.demo.insert({"id":"1","name":"小葵花","age":"18"})
开启权限认证 vim /etc/mongod.conf 添加如下配置
security:
authorization: enabled修改完重启服务 systemctl restart mongod
在springboot中使用mongodb
#pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
#application.yml
spring:
data:
mongodb:
host: 192.168.0.138
port: 27017
database: demo # 连接的库
username: test
password: '123456' #password是用char[]接收的,如果你的密码是纯数字、*或者其他特殊字符 需要加单引号。
authentication-database: demo #认证的库 你在哪个库中创建的用户就在哪个库认证