mongodb yum 安装

一、mongodb 介绍
在高负载的情况下,可以添加更多的节点,保证服务器性能
将数据存储为一个文档,数据结构由键值对组成,类似于 JSON对象。字段值可以包含其他文档,数组及文档数组

database   collection  document  field    index   primary key
数据库        集合          文档           域       索引     主键

数据库中有集合:集合中有文档:文档就是["name":"aming","age":"30","sex":"男"]

二、mongodb 安装
     1)、vim /etc/yum.repos.d/mongodb-org-3.0.repo
               [mongodb-org-3.0]
               name=MongoDB Repository
               baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mogodb-org/3.0/x86_64/
               gpgcheck=0
               enabled=1
     2)、yum install mongodb-org  (安装 5 个包)
     3)、/etc/init.d/mongd
               /etc/mongod.conf
               /var/log/mongodb/
               /var/lib/mongo/
     4)、vim /etc/mongod.conf
               fork 跟 pid 后面的 # 注释内容删掉
               bindIp: 为空就是绑定所有的ip
     5)、/etc/init.d/mongod start
          在写入/var/lib/mongo/ 中的文件
     6)、写入一些配置
          # echo never>/sys/kernel/mm/transparent_hugepage/enabled
          # echo never > /sys/kernel/mm/transparent_hugepage/defrag
          # vim /etc/security/limits.conf
          添加:
              mongod soft nofile 64000
              mongod hard nofile 64000
              mongod soft nproc 32000
              mongod hard nproc 32000
     7)、service mongod restart
          注:启动中显示失败,但是没有报错
          解决:通过 # mongod -f /etc/mongod.conf 来启动

三、MongoDB 的数据库连接和用户管理
     1)、连接mongodb
          i)、mongo 直接进入
          ii)、mongo --port 27018 (不是默认27017端口)
          iii)、mongo --host 127.0.0.1
          iiii)、mongo -uroot -p1234567
     2)、用户创建
          > use test  (不存在会自动创建)
          > db.createUser({user:"admin",pwd:"123456",roles:[{role:'dbOwner',db:'userdb'}]})
          > use admin 切换到 admin 库下
          > db.system.users.find()  查看有哪些用户
          > show users; 当前库中的用户
          > use test  切换到 test 库
          > db.dropUser('admin') 删除admin 用户

四、库和集合管理
     1)、库
     > db.version() 加不加  ;  都可以
     > use userdb
     > show dbs  查不到 userdb 库,需要创建一个集合才能show
     > db.createCollection('mycol')
     > show dbs  此时就可以显示 userdb 库
     > db.dropDatabase()  删除当前库
     > show dbs  此时查看不到 userdb 库
     > use admin
     > db.status()  查看当前库信息
     > db.serverStatus()  
     2)、集合   ( 集合创建的时候不要以数字开头)
     > db.createCollection("mycol",{ capped:true, autoIndexID:true, size:6142800, max:10000 })
     capped 为true 就是启用封顶集合,当达到最大大小,会自动覆盖最早的条目,跟size 连用来指定大小
     max 为最大文件数
     
     > show collections  查看所有的集合
     > db.Account.insert({ AccountID:1, UserName:"123",password:"123456" }) 其中的 Account 为集合的名称,如果该集合没有存在,会自动创建
     > db.Account.find()  查找所有文档,也可以在find()中添加条件,如:find({ AccountID:2 })
     > db.Account.update({AccountID:1},  { "$set":{"Age":30} })  可以添加字段,也可以修改字段的值
     > db.Account.remove({Account:1}) 删除某一行
     > db.Account.drop()  删除集合中所有的文档
     > db.printCollectionstats()

五、mondodb 副本集
      primary(主) secondary(从),可以设置权重
      arbiter(仲裁)只负责裁决,不存储数据
      
     从的机子上:
      vim /etc/mongod.conf 添加
     replication:
     #oplog大小
       oplogSizeMB: 20
     #复制集名称
       replSetName:  aminglinux
     
     重启 /etc/init.d/mongod restart

     到主的机子上:
     mongo
     > use admin
     > config={_id:"adminglinux",members:[{_id:0,host:"192.168.32.111:27017"},{_id:1,host:"192.168.32.112:27017"}]}
     _id 副本集名字,members:从的机子
     > rs.initiate(config)  加载 config
     > rs.status() 如果有将从机子加进去,就不用下面的命令
     > rs.add("192.168.32.112")
     > rs.config()  查看相关的配置

     如果配置成功之后,mongo 进入之后主会有 promary, 从会有 secondry
     > var config=....
     > rs.reconfig(config) 重新加载

六、副本集测试
     主上面:
     > use mydb
     > db.createCollection('testc')
     > show dbs
     
     从上面:
     > show dbs 失败,因为没有权限
     > rs.slaveOk()  赋予从权限
     > show dbs 可以查看
     > use mydb
     > show tables
     
     主上面:
     > rs.status()  查看从的health 如果是1 就说明是健康的
     > rs.config()  查看权重 (priority),权重越高就会变成主
     
     > cfg=rs.conf()
     > cfg.members[0].priority = 3  设置第一个从机子上的权重为 3
     > rs.reconfig(cfg)
     > rs.config()  此时查看从的权重是否不同

     禁掉主上面的端口
     iptables -I INPUT -p tcp  --dport 27017 -j DROP
     

     从上面:
     权重最高的从变成主,此时查看 rs.status() 就会看到原来的主 health 变成 0

      主上面:
      iptables -D INPUT -p tcp  --dport 27017 -j DROP
      主恢复之后,从上面添加的数据会自动添加到主上面

七、mongodb 备份与恢复
     备份指定的库
     mongodump -h ip -d dbname -o dir 
     -h 跟服务器 ip
     -d 跟 database 名字
     -o 指定备份数据存到哪个目录下
     备份所有的库
     mongodump -h ip -o dir
     备份指定集合
     mongodump -d dbname -c testc -o dir
     导出集合为 json 文件
     mongoexport -d dbname -c testc -o /tmp/testc.json 
     -o 后面跟指定文件

     恢复
     mongorestore -d mydb /tmp/mongodbbackup/mydb/
     恢复的时候必须指定要相应的库下面
     mongorestore --drop /tmp/123
     恢复全部的库,其中--drop 可以将之前恢复的东西删除
     mongorestore -d mydb -c testc /tmp/123/mydb/testc.bson
     恢复具体的集合的时候,必须也要指定对应的集合文件

     mongoimport --drop -d mydb -c testc --file /tmp/testc.json

八、php 连接 mongodb
     下载mongodb扩展包
     # wget 'http://codeload.github.com/mongodb/mongo-php-driver/zip/master' -o /usr/local/src/mong_php.zip
     # cd /usr/local/src/
     # unzip mong_php.zip
     # cd mongo-php-driver-master
     # /usr/local/php/bin/phpize
     # ./configure --with-php-config=/usr/local/php/bin/php-config
     # make
     # make install
     # ls /usr/local/php/ext/mongo.so
     # /usr/local/php/bin/php -i | grep extension_dir
     # vim /usr/local/php/etc/php.ini
          添加: extension = mongo.so
     # /usr/local/php/bin/php -m | grep mongo
     -m 查看PHP 加载了哪些模块
     # /etc/init.d/php-fpm restart
     # vim /data/www/html/mongotest.php
          <?php
          //连接 mongodb
          $m = new MongoClient();
          //选择一个数据库
          $db = $m->mydb;
          ?>
     # curl localhost/mongotest.php
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值