官网下载符合自己操作系统的mongodb

rpm -ivh mongodb-org-server-4.0.10-1.el7.x86_64.rpm  #服务端
rpm -ivh mongodb-org-shell-4.0.10-1.el7.x86_64.rpm   #命令行连接 mongoDB
#rpm -ivh mongodb-org-tools-4.0.10-1.el7.x86_64.rpm  #附加工具,例如数据导入导出
#rpm -ivh mongodb-org-mongos-4.0.10-1.el7.x86_64.rpm #部署集群

由于单机版mogodb即可满足要求,此处只需要安装前两个rpm包,

vi /etc/mongod.conf   修改默认的日志/数据存储目录

修改前:

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# Where and how to store data.
storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.


#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options

#auditLog:

#snmp:

修改后:

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /data/mongodb/logs/mongod.log

# Where and how to store data.
storage:
  dbPath: /data/mongodb/data
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /data/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 27017
 # bindIp: 127.0.0.1
  bindIp: 0.0.0.0
#,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.


#security:
security:
    authorization: enabled #注意缩进,参照其他的值来改,若是缩进不对可能导致后面服务不能重启

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options

#auditLog:

#snmp:

此外还需要修改/usr/lib/systemd/system/mongod.service文件中的

PIDFile=/data/mongodb/mongod.pid   否则无法启动成功

systemctl daemon-reload
systemctl start mongod
systemctl enable mongod

启动mongodb:

mongo --port 27017

use命令用于创建数据库(如果没有该数据库,有的话直接进入该库),创建的库是平行等级的

切换到admin数据库:

>use admin

创建管理员账户并赋予权限(用于管理所有数据库):

> db.createUser({user:"admin",pwd:"1qaz#EDC",roles:[{role:"root", db:"admin"}]})
 user:”用户名“,
 pwd:"密码”,
 roles:[{role:"角色名“, db:"角色所属数据库”}, {role:"角色名2“, db:"角色所属数据库2”},.....]

新增的用户在 db.system.users 中

> db.getCollectionNames()
[ "system.indexes", "system.users", "system.version" ]

验证用户是否创建成功:

> db.auth("admin","1qaz#EDC")
 1
 > exit

杀掉进程,重启mongoDB服务:

ps -ef | grep mongod
kill -9 pid

带认证模式开启Mongod:

mongod --auth --config /etc/mongod.conf

进入账户所属数据库,再认证

> use admin
 switched to db admin
 > db.auth("用户名","密码")
 1
 > show dbs
 admin 0.000GB
 config 0.000GB
 local 0.000GB
 #这样登陆成功了

在admin中添加数据库job_ret_err:

> use job_ret_err
 switched to db job_ret_err
 > db
 runoob
 >show dbs


可以看到,刚才创建的数据库job_ret_err不在数据库的列表中,要显示它,还需要向job_ret_err数据库插入一些数据

>db.job_ret_err.insert({"qwertyuiop":"json"})

>show dbs

---------------------------------------------------------------通过压缩包安装---------------------------------------------------------------------------------

https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.10.tgz 任意目录下解压,然后复制到/data/mongodb/目录下
mv /解压到的目录/mongodb-linux-x86_64-rhel70-4.0.10/* /data/mongodb

配置环境变量

vi /etc/profile    在文件的最后添加:

MONGODB_HOME=/data/mongodb
 MONGODB_PATH=$PATH:$MONGODB_HOME/bin
 export MONGODB_PATH
 source /etc/profile         令环境变量立即生效
 mkdir -p /data/mongodb/data
 mkdir -p /data/mongodb/logs
 touch /data/mongodb/mongodb.conf      创建配置文件
 #####################mongodb.conf内容####################
 port=27017 #端口  
 dbpath=/data/mongodb/data #数据库存文件存放目录  
 logpath=/data/mongodb/logs/mongodb.log #日志文件存放路径  
 logappend=true #使用追加的方式写日志  
 fork=true #以守护程序的方式启用,即在后台运行  
 maxConns=100 #最大同时连接数  
 auth=true #启用验证  
 journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
 #即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
 storageEngine=wiredTiger  #存储引擎有mmapv1、wiretiger、mongorocks
 bind_ip=0.0.0.0  #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
 ##########################################################
 mongod --config /data/mongodb/mongodb.conf     启动
 mongod --config /data/mongodb/mongodb.conf --shutdown  关闭

创建用户与数据库等操作同上

-------------------------------------------------------------docker安装mongo----------------------------------------------------------------------------

docker pull 镜像仓库/mongo:标签

docker images查看镜像是否下载成功

docker run --name mongodb -v /data/mongodb/data:/data/db -p 27017:27017 -d public-docker-virtual.artnj.zte.com.cn/mongo:4.0.7 --auth                      以认证方式启动容器
 docker exec -it c049b9096de1 mongo admin                   进入容器
 db.createUser({ user: 'admin', pwd: '1qaz#EDC', roles: [{ role: "root", db: "admin" }]});    创建用户
 db.auth("admin","1qaz#EDC")                      认证
 exit
 docker exec -it c049b9096de1 mongo admin      再次进入容器
 mongo      进入mongo
 use jobResult           创建集合
 db          显示集合
 show dbs   
db.jobResult({"logId":"redvfkcnwdore","res":"dvfkcneswfoiore"})