MongoDB环境准备(Docker)

MongoDB是什么?

MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统,在高负载情况下,添加更多节点,可以保证服务器性能。

MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB将数据存储为文档,数据结构由键值(key=>value)对组成。

MongoDB文档类似于‘JSON’对象。字段值可以包含你其他文档、数组及文档数组。

DOCKER部署MongoDB

  1. 获取对象

    $ docker search mongo  #查询镜像
    NAME                                DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
    mongo                               MongoDB document databases provide high avai…   6480                [OK]                
    mongo-express                       Web-based MongoDB admin interface, written w…   587                 [OK]                
    $ docker pull mongo   #拉取镜像
     
    
  1. MongoDB配置文件

    在/data/mongodb/configdb/目录下新建文件 mongodb.conf

    # mongodb.conf
    logappend=true
    # bind_ip=127.0.0.1
    port=27017 
    fork=true
    noprealloc=true
    auth=true
    
  1. 构建MongoDB

    $ docker run \
    --name mongodb_server \ #容器项目名称
    -p 27017:27017 \ #映射端口,意思是把本地的27017端口映射到容器的27017
    -v /data/mongodb/configdb/:/data/configdb/ \ #数据目录映射,持久化
    -v /data/mongodb/db/:/data/db/ \ 
    -d mongo -auth # 后台运行,开启认证登录
    
  1. 查看MongoDB进程

    $ docker ps
    

配置admin账户信息

  1. 使用admin登录MongoDB

    $ docker exec -it mongodb_server mongo admin
    
  1. 创建一个admin管理员账号

    db.createUser({user:'admin',pwd:'123456',roles:[{role:'userAdminAnyDatabase', db:'admin'}]} , { w: "majority" , wtimeout: 5000 })
    

    [图片上传失败...(image-ce15a8-1578558493575)]

  2. MongoDB 用户权限

    内建的角色

    • 数据库用户角色: read、readWrite
    • 数据库管理角色: dbAdmin、dbOwner、userAdmin
    • 集群管理角色: clusterAdmin、clusterManager、clusterMonitor、hostManger
    • 备份恢复角色:backup、restore
    • 所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    • 超级管理员角色:root
    • 内部角色:__system

    角色说明

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

你可能感兴趣的:(MongoDB环境准备(Docker))