Centos7搭建MongoDB简单整合使用

1.下载安装包

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.5.tgz

2.解压

tar -zxvf mongodb-linux-x86_64-4.0.5.tgz

3.创建数据目录和日志目录以及配置文件

cd mongodb-linux-x86_64-4.0.5
#创建数据存放目录
mkdir data
#创建日志目录及文件
mkdir log
cd log
touch mongodb.log
cd ../bin
#创建配置文件
touch mongodb.conf
#写入以下配置
# 实例运行在27017端口(默认)
port = 27017
#允许外部访问
bind_ip = 0.0.0.0
# 数据文件夹存放地址(db要预先创建)
dbpath = /app/server/mongodb-linux-x86_64-4.0.5/data/
# 日志文件地址
logpath = /app/server/mongodb-linux-x86_64-4.0.5/log/mongodb.log
#启动时 添加还是重写日志文件
logappend = false
# 是否后台运行
fork = true
# 开启校验用户,首次安装先置为false,使用admin用户配置为数据库用户后再置为true
auth = false
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
storageEngine=wiredTiger  #存储引擎有mmapv1、wiretiger、mongorocks

4.配置环境变量

vim /etc/profile
#写入以下内容并使配置文件生效
export MONGODBPATH=/app/server/mongodb-linux-x86_64-4.0.5
export PATH=$PATH:$MONGODBPATH/bin

source /etc/profile

5.服务启动关闭命令

mongod -f mongodb.conf
mongod -f mongodb.conf --shutdown  

6.配置开机启动

vim /usr/lib/systemd/system/mongodb.service,写入以下内容
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/app/server/mongodb-linux-x86_64-4.0.5/bin/mongod --config /app/server/mongodb-linux-x86_64-4.0.5/bin/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/app/server/mongodb-linux-x86_64-4.0.5/bin/mongod --shutdown --config /app/server/mongodb-linux-x86_64-4.0.5/bin/mongodb.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

7.服务验证

systemctl start mongodb.service

8.配置用户名密码

cd bin
mongo命令进入控制台,默认进入的数据库为test,选定admin后再创建管理员用户和角色:
use admin
db.createUser({user:'admin',pwd:'admin',roles:[{role:'userAdminAnyDatabase',db:'admin'}]})
添加成功后退出,将配置文件中的auth:ture重启服务。
再次进入时就需要auth信息了。使用:
db.auth("admin","admin")返回值为1说明正确连接。
在内置数据库admin中设置的用户及密码可访问系统中所有其他表

说明:
user:用户名
pwd:密码
roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角>色和用户定义的角色。role里的角色可以选:

  Built-In Roles(内置角色):
    1. 数据库用户角色:read、readWrite;
    2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
    3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    4. 备份恢复角色:backup、restore;
    5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    6. 超级用户角色:root 
    // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
    7. 内部角色:__system

具体角色:

Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限。

#刚建立了 userAdminAnyDatabase 角色,用来管理用户,可以通过这个角色来创建、删除用户。
MongoDB的每个数据都有各自的用户,例如给创建demo数据库并创建demo的用户
use demo #该demo数据库在插入数据后用show dbs才会显示
db.createUser({user:'demo',pwd:'demo',roles:[{role:'readWrite',db:'demo'}]})

9.使用客户端工具连接MongoDB

可以使用Robo3T客户端来连接管理MongoDB数据。 https://robomongo.org/download

10.使用springboot轻松集成MongoDB API

springboot集成MongoDB基本操作

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://maplefix.top/archives/linux-builds-mongodb