• MongoDB学习


    1. docker 启动

    拉取镜像 docker pull mongo:latest

    指定目录启动  docker run -d -p 27017:27017 --name mongo
    -v /home/mongodb/data/mongodb:/data/db
    -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admindev123$%^ mongo:latest

    2. 安装包安装

    2.1官方下载地址 https://www.mongodb.com/download-center/community

    上传服务器解压   tar -zxvf ************.tgz

    移到到指定目录,自己看情况   /usr/local/mongodb

    2.2 配置conf与目录

          cd /usr/local/mongodb

          创建db目录和日志文件 

          mkdir  /data/db   /logs   

          touch  /logs/mongodb.log

          创建mongodb.conf 文件

      vi mongodb.conf

    #端口号
    port=27017
    #db目录
    dbpath=/usr/local/mongodb/data/db
    #日志目录
    logpath=//usr/local/mongodb/logs/mongodb.log
    #后台
    fork=true
    #日志输出
    logappend=true
    #允许远程IP连接
    bind_ip=0.0.0.0

    2.3 启动

      ./bin/mongod --config mongodb.conf

           连接

           ./bin/mongo

           测试一下

    2.4 配置开机自启动

     cd /lib/systemd/system

     vi mongodb.service

      [Unit]
      Description=mongodb
      After=network.target remote-fs.target nss-lookup.target

      [Service]
      Type=forking
      ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
      ExecReload=/bin/kill -s HUP $MAINPID
      ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/mongodb.conf
      PrivateTmp=true

      [Install]
      WantedBy=multi-user.target

         然后设置mongodb.service权限

         chmod +x mongodb.service

         #启动服务

         systemctl start mongodb.service    

         #停止服务

         systemctl stop mongodb.service

         #添加开机自启动

         systemctl enable mongodb.service

         #重启服务

         systemctl restart mongodb.service

      2.5 配置环境变量

      1、直接用export命令:
         export PATH=$PATH:/usr/local/mongodb/bin


         2、修改profile文件:
         cat >>/etc/profile<<"EOF"
         export PATH="$PATH:/usr/local/mongodb/bin"

         EOF

         #刷新profile文件:

         source  /etc/profile


         3、 修改.bashrc文件:

         cat >>/root/.bashrc<<"EOF"
         export PATH="$PATH:/usr/local/mongodb/bin"

         EOF


         上述三步依次执行完毕,环境变量配置完成!!!!

          重启服务器,输入mongo 回车就有了。。。。。

    3 创建用户

    #进入mongoDb容器,创建管理员
    docker exec -it mongoDb bash
    #进入mongoDb
    mongo
    > use admin
    switched to db admin
    > db.createUser({user:"admin",pwd:"admin",roles:[{role:"root",db:"admin"}]});
    Successfully added user: {
    "user" : "admin",
    "roles" : [
    {
    "role" : "root",
    "db" : "admin"
    }
    ]
    }
    #出现创建成功提示就对了,退出管理员
    > exit;
    #用刚创建的管理用户登录在创建个普通用户
    mongo --port 27017 -u admin -p admin --authenticationDatabase admin
    > use test
    switched to db test
    > db.createUser({user:"tester",pwd:"tester",roles:[{role:"readWrite",db:"test"}]});
    Successfully added user: {
    "user" : "tester",
    "roles" : [
    {
    "role" : "readWrite",
    "db" : "test"
    }
    ]
    }
    > exit

    使用新建的test库,就需要在新建的test库下面创建一个用户,amdin也不行,admin只能在原始存在的库可以
    比如新建一个test
    需要在test下面创建一个用户

    db.createUser(
    {
    user: "root",
    pwd: "admindev123$%^",
    roles: ["readWrite"]
    }
    )

    返回1显示1则成功

     mongoDb用户角色权限说明

    • 数据库用户角色 read、readWrite
    • 数据库管理角色 dbAdmin、dbOwner、userAdmin
    • 集群管理角色 clusterAdmin、clusterManager、clusterMonitor、 hostManager
    • 备份恢复角色 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数据库中可用。超级账号,超级权限

    删除用户:

    db.dropUser(<user_name>)    删除某个用户,接受字符串参数

    示例:db.dropUser(“admin”)

    db.dropAllUser()             删除当前库的所有用户

    纵有白头俱老意,奈何缘浅路芊芊.
  • 相关阅读:
    论文笔记4
    论文笔记3
    论文笔记2
    论文笔记1
    论文笔记
    AFG与AWG的比较
    Linux下“有线线缆被拔出”问题的解决
    python生成excel格式座位表
    PythonTip--一马当先--bfs
    python pygame--倒计时
  • 原文地址:https://www.cnblogs.com/hanby/p/15182592.html
Copyright © 2020-2023  润新知