MongoDB搭建及使用

MongoDB搭建及使用

官方安装文档

一、安装MongoDB步骤:

1、配置yum源
  • 在/etc/yum.repos.d/目录下创建mongodb-org-4.2.repo文件,写入以下内容:
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
2、安装MongoDB
# 安装mongodb
sudo yum install -y mongodb-org

#安装相关组件包
sudo yum install -y mongodb-org-4.2.2 mongodb-org-server-4.2.2 mongodb-org-shell-4.2.2 mongodb-org-mongos-4.2.2 mongodb-org-tools-4.2.2

#在 /etc/yum.conf 文件中添加配置,防止意外升级
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
3、安装后信息
# 数据库路径
mkdir -p /var/lib/mongo
#log路径
mkdir -p /var/log/mongodb

#将mongodb相关目录授权给mongod用户
chown -R mongod:mongod <directory>

#MongoDB配置文件
/etc/mongod.conf
#外网连接需要绑定内网IP地址:
net:
  port: 27017
  bindIp: 192.168.1.60,127.0.0.1

#解决大内存警告,关闭系统大内存,重启MongoDB就可以了,但是重启系统之后就不行了
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag
4、操作指令
#启动
sudo service mongod start
#添加到自动重启
sudo chkconfig mongod on
#重启
sudo service mongod restart
#停止
sudo service mongod stop

#使用MongoDB
mongo
# 5、安全性
# 1、创建管理员用户
> use admin
switched to db admin
> db.createUser({user:"admin",pwd:"password",roles:["root"]})
Successfully added user: { "user" : "admin", "roles" : [ "root" ] }
# 2、开启认证
security:
  authorization: enabled
# 3、重启MongoDB
sudo service mongod restart
# 4、登录MongoDB,两种方式
mongo -u admin -p 123456

use admin
db.auth('admin', '123456')

# 5、添加数据库用户
use test  // 跳转到需要添加用户的数据库
db.createUser({
  user: 'fooadmin',  // 用户名
  pwd: '123456',  // 密码
  roles:[{
    role: 'readWrite',  // 角色
    db: 'test'  // 数据库名
  }]
})

# 常用命令
show users  // 查看当前库下的用户
db.dropUser('testadmin')  // 删除用户
db.updateUser('admin', {pwd: '654321'})  // 修改用户密码
db.auth('admin', '654321')  // 密码认证

# MongoDB 数据库默认角色
数据库用户角色:read、readWrite
数据库管理角色:dbAdmin、dbOwner、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
dbAdminAnyDatabase
超级用户角色:root

二、SpringBoot中使用MongoDB

1、应用场景
# 在内嵌数据类型中:一对一,一对多的数据类型中
1)表结构不明确且数据不断变大
MongoDB是非结构化文档数据库,扩展字段很容易且不会影响原有数据。内容管理或者博客平台等,例如圈子系统,存储用户评论之类的。
2)更高的写入负载
MongoDB侧重高数据写入的性能,而非事务安全,适合业务系统中有大量“低价值”数据的场景。本身存的就是json格式数据。例如做日志系统。
3)数据量很大或者将来会变得很大
Mysql单表数据量达到5-10G时会出现明细的性能降级,需要做数据的水平和垂直拆分、库的拆分完成扩展,MongoDB内建了sharding、很多数据分片的特性,容易水平扩展,比较好的适应大数据量增长的需求。
4)高可用性
自带高可用,自动主从切换(副本集)

你可能感兴趣的:(java,MongoDB)