• MongoDB安装实录


       mongodb是nosql中的贵族,很受欢迎。。。

    01、下载

    02、安装

    01、基于yum安装
     
    yum localinstall -y  *.rpm  
    service mongod start
     
    02、基于编译好的文件安装
    tar zxf  xxx.taz
    mkdir  -p /data/db
    mongod   --dbpath=/path/data   --logpath=/path/logs   --logappend   --port=27017   --fork  ###命令制定配置信息
    03、基本指令含义

    bin/mongod                - The database process.  

    bin/mongos                -Sharding controller.  

    bin/mongo                 - The database shell (uses interactive javascript).

    bin/mongodump         - MongoDB dump tool - for backups, snapshots, etc..  

    bin/mongorestore      - MongoDB restore a dump  

    bin/mongoexport       - Export a single collection to test (JSON, CSV)  

    bin/mongoimport       - Import from JSON or CSV  

    bin/mongofiles         - Utility for putting and getting files from MongoDB GridFS  

    bin/mongostat         - Show performance statistics

    RUNNING

      For command line options invoke:

        $ ./mongod --help

      To run a single server database:

        $ mkdir /data/db     ###默认数据库存储位置

        $ ./mongod            ### database prosses ,自动加载默认配置   

        $ ./mongo             ###database shell

    mongodb启动时的常用参数说明:
    --bind_ip 绑定IP,绑定后只能绑定的IP访问服务
    --dbpath 指定数据库目录
    --port 指定数据库端口,默认是27107
    --logpath 指定日志存放目录
    --logappend 使用追加的方式写日志
    --pidfilepath 指定进程文件,不指定则不产生进程文件
    --journal 启用日志
    --maxConns 最大的并发连接数,默认2000
    --fork 将服务放到后台运行
    --notablescan 不允许表扫描
    --syncdelay 数据写入硬盘的时间(秒),0是不等待,直接写入

     03、mongodb常见操作

    shell操作数据库:
    1.  超级用户相关: 
             1. #进入数据库admin 
              use admin 
             2. #增加或修改用户密码 
              db.addUser('name','pwd') 
             3. #查看用户列表 
              db.system.users.find() 
             4. #用户认证 
              db.auth('name','pwd') 
             5. #删除用户 
              db.removeUser('name') 
             6. #查看所有用户 
              show users 
             7. #查看所有数据库 
              show dbs 
             8. #查看所有的collection 
              show collections 
             9. #查看各collection的状态 
              db.printCollectionStats() 
            10. #查看主从复制状态 
              db.printReplicationInfo() 
            11. #修复数据库 
              db.repairDatabase() 
            12. #设置记录profiling,0=off 1=slow 2=all 
              db.setProfilingLevel(1) 
            13. #查看profiling 
              show profile 
            14. #拷贝数据库 
              db.copyDatabase('mail_addr','mail_addr_tmp') 
            15. #删除collection 
              db.mail_addr.drop() 
            16. #删除当前的数据库 
              db.dropDatabase() 
    2. 增删改 (其中下面的foo与user_addr为collection)
             1. #存储嵌套的对象 
                db.foo.save({'name':'ysz','address':{'city':'beijing','post':100096},'phone':[138,139]}) 
             2. #存储数组对象 
                db.user_addr.save({'Uid':'yushunzhi@sohu.com','Al':['test-1@sohu.com','test-2@sohu.com']}) 
             3. #根据query条件修改,如果不存在则插入,允许修改多条记录 
                db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true) 
             4. #删除yy=5的记录 
                db.foo.remove({'yy':5}) 
             5. #删除所有的记录 
                db.foo.remove() 
       3. 索引 (其中下面的foo与user_addr为collection)
             1. #增加索引:1(ascending),-1(descending) 
             2. db.foo.ensureIndex({firstname: 1, lastname: 1}, {unique: true}); 
             3. #索引子对象 
             4. db.user_addr.ensureIndex({'Al.Em': 1}) 
             5. #查看索引信息 
             6. db.foo.getIndexes() 
             7. db.foo.getIndexKeys() 
             8. #根据索引名删除索引 
             9. db.user_addr.dropIndex('Al.Em_1') 
    4. 查询 (其中下面的foo与user_addr为collection)
             1. #查找所有 
            2. db.foo.find() 
            3. #查找一条记录 
            4. db.foo.findOne() 
            5. #根据条件检索10条记录 
            6. db.foo.find({'msg':'Hello 1'}).limit(10) 
            7. #sort排序 
            8. db.deliver_status.find({'From':'ixigua@sina.com'}).sort({'Dt',-1}) 
             9. db.deliver_status.find().sort({'Ct':-1}).limit(1) 
            10. #count操作 
            11. db.user_addr.count() 
            12. #distinct操作,查询指定列,去重复 
            13. db.foo.distinct('msg') 
            14. #”>=”操作 
            15. db.foo.find({"timestamp": {"$gte" : 2}}) 
            16. #子对象的查找 
            17. db.foo.find({'address.city':'beijing'}) 
       5. 管理  (其中下面的deliver_status为collection)
             1. #查看collection数据的大小 
             2. db.deliver_status.dataSize() 
             3. #查看colleciont状态 
             4. db.deliver_status.stats() 
             5. #查询所有索引的大小 
             6. db.deliver_status.totalIndexSize() 

    05、错误解决

    权限问题:
    Unable to create/open lock file: /opt/mongo/data/mongod.lock errno:13 Permission denied
    解决问题:
    chown -R mongod.mongod   /var/lib/mongo
  • 相关阅读:
    Java基础教程:面向对象编程[3]
    Java拓展教程:文件DES加解密
    JavaScript:学习笔记(4)——This关键字
    jQuery:[2]百度地图开发平台实战
    Android开发——减小APK大小
    玩转ButterKnife注入框架
    Java技术——多态的实现原理
    RxAndroid结合Retrofit,看看谁才是最佳拍档!
    Android开发——AsyncTask的使用以及源码解析
    10本比较鸡肋的技术类书籍,简要回顾
  • 原文地址:https://www.cnblogs.com/xiaochina/p/6270866.html
Copyright © 2020-2023  润新知