mongo

作者: 古飞_数据 | 来源:发表于2021-08-19 06:20 被阅读0次

    基本概念

    mongdb一个NoSQL数据库,里面存储的是BSON(Binary Serialized Document Format,支持集群,高可用、可扩展。

    mongdb中的一些概念
    MongoDB MySQL
    database database
    collection table
    json 二维表
    不支持SQL SQL
    _id 主键

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


    CentOS Linux release 7.6.1810 (Core)
    version v3.4.24
    yum 安装 mongo


    安装前准备

    关闭selinux

    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    

    添加安装源并安装

    cat >/etc/yum.repos.d/mongodb-org-3.4.repo<<EOF
    [mongodb-org-3.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/3.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
    EOF
    
    yum clean all
    yum list | grep mongo
    yum install -y mongodb-org
    

    修改mongo的配置文件

    vi /etc/mongod.conf

    注释掉bindIp或者修改成当前机器的某一个ip地址

    启动mongo

    systemctl start mongod
    
    
    mongo
    mongo --host 192.168.11.29
    mongo --host 192.168.11.29 --port 27018
    

    使用或创建database

    use bestway
    

    创建集合(表)

    db.createCollection("bike")
    

    插入数据

    db.bike.insert({"_id": 100001, "status": 1, "desc": "test"})
    db.bike.insert({"_id": 100002, "status": 1, "desc": "test"})
    

    查找数据(所有)

    db.bike.find()
    

    退出

    exit
    
    systemctl stop mongod
    

    mongo安全认证配置###

    如果修改了mongo存储是的目录那么一定要修改该目录的所属用户和组为mongod

    chown -R mongod:mongod /mongo/


    添加管理员用户

    使用admin这个database

    use admin
    

    在没有开启认证的情况下,创建一个超级用户

    db.createUser(
         {
           user: "lenovo",
           pwd: "123456",
           roles: [ {role: "root", db: "admin" }]
         }
    )
    

    修改mongo的配置文件/etc/mongod.conf,配置mongo的安全认证

    security:
      authorization: enabled
    

    重启mongo服务

    service mongod restart

    systemctl restart mongod

    重新使用mongo shell连接

    mongo

    使用admin database

    use admin

    授权登录

    db.auth("admin", "admin123")
    

    创建一个bike数据库

    use bike
    

    添加一个普通用户,具备读写权限

    db.createUser(
         {
           user: "xiaoniu",
           pwd: "123568",
           roles: ["readWrite"]
         }
    )
    

    使用小牛用户登录

    mongo
    use bike
    db.auth("xiaoniu", "123568")

    在database下创建collection

    db.createCollection("users")
    db.createCollection("bikes")

    插入数据

    db.users.insert( { name: "laozhao", age: 30 } )
    

    查找

    db.users.find()
    
    db.users.update({'name':'laozhao'},{$set:{'age': 18}},{multi:true})
    
    db.users.remove({'name': 'laoduan'})
    db.users.remove({'name': 'laoduan'}, 1)
    
    db.users.find({"name":"laoduan", "fv": 99.99})
    

    查看当前db的索引

    db.logs.getIndexes()
    

    创建索引

    db.logs.ensureIndex({"name":1})
    

    删除索引

    db.logs.dropIndex({"name":1})
    

    相关文章

      网友评论

          本文标题:mongo

          本文链接:https://www.haomeiwen.com/subject/pdkgbltx.html