标签:
一、连接mongodb
//连接 [root@localhost ~]# mongo MongoDB shell version: 3.0.7 connecting to: test >
//指定host
[root@localhost ~]# mongo --host 127.0.0.1
MongoDB shell version: 3.0.7
connecting to: 127.0.0.1:27017/test
>
//指定port
[root@localhost ~]# mongo --host 127.0.0.1 --port 27017
Mongodb shell version: 3.0.7
connecting to:127.0.0.1:27017/test
>
--> 如果把port指定错误,则会出现报错信息
二、用户管理
[root@localhost ~]# mongo MongoDB shell version: 3.0.7 connecting to: test > use test //切换到test库下,如果test库不存在则自动创建 switched to db test > db.createUser({user:"admin",pwd:"123456",roles:[{role:‘dbOwner‘,db:‘userdb‘}]}) /*创建用户名为admin,密码为123456,角色中又有一个小集合*/ Successfully added user: { "user" : "admin", "rolles" : [ { "role" : "dbOwner", "db" : "userdb" } ] } > db.system.users.find() //列出所有用户,可补全下面的命令所列不出来的
> show users //查看当前库下所有的用户 > db.dropUser(‘admin‘) //删除用户
三、库管理
[root@localhost ~]# mongo MongoDB shell version: 3.0.7 connecting to: test > db.version //查看版本 > use userdb > show dbs //查看库,库里应该有集合,集合需要创建才有 > db.createCollection(‘clo1‘) //在当前库下创建集合clo1, > db.dropDatabase() //删除当前库--想删除什么库,必须切换到当前库下 > db.stats() //查看当前库的信息 > db.serverStatus() //查看mongodb服务器的状态
四、创建集合
> db.createCollection("mycol",{ capped: true,autoIndexID: true,size: 6142800,max: 10000 }) //此处语法为 db.createCollection(name,options) --> 1. name 集合的名字 2.option可选,配置集合的参数。 参数如下: capped: true/false --> true : 启用封顶集合。 封顶集合是固定大小的集合,当它达到其最大大小,会自动覆盖最早的条目 true还需要指定尺寸参数。 ================== autoindexID: true/false --> true : 自动创建索引 _id字段的默认值是false。 ================== size: 指定最大大小字节封顶集合 封顶--〉且是true还需指定字段,单位:B ================== max: 封顶集合允许在文件的最大数量
五、副本集
介绍:
早期版本 使用master-slave,与MySQL主从类似。
但slave 为只读,当主库宕机后,从库不能自动切换为主
所有修改为 副本集 (repl set)
模式:
一个主(primary)
多个从(secondary) --给它们设置权重,主当掉时,权重最高的从切换为主
一个仲裁(arbiter)--负责裁决,而不存储数据
注意:此架构中
读写数据 --主
负载均衡 --手动指定读库的目标server
//机器准备 三台机器 172.7.15.111 (primary) 172.7.15.112 (secondary) 172.7.15.101 (secondary) //编辑三台机器的配置文件 [root@localhost ~]# vi /etc/mongod.conf //ADD ... #operationProfiling: replication: ##oplog大小 oplogSizeMB: 20 ##复制集名称 replSetName: lulu [root@localhost ~]# /etc/init.d/mongd restart //副本集搭建 > use admin > config={ id:"lulu", member:[_id:0,host:"172.7.15.111:27017"},{_id:1,host:"172.7.15.112:27017"},{_id:2,host:"172.7.15.101:27017"}]} > rs.initiate(config) //初始化配置 > rs.status() //查看状态,也查看是否成员(StateStr)增加成功 ... //如果StateStr为STARTUP,则需要进行如下操作 > var config={ id:"lulu", member:[_id:0,host:"172.7.15.111:27017"},{_id:1,host:"172.7.15.112:27017"},{_id:2,host:"172.7.15.101:27017"}]} > rs.reconfig(config) > rs.status() //从的状态变为SECONDARY //如果成员没有添加成功,进行如下操作 > rs.add("172.7.15.112") //手动增加成员 > rs.add("172.7.15.101") > rs.config() //查看配置的信息
//副本集测试 //主上建库,建集合 > use mydb > db.acc.insert({AccountID:1,UserName:"123",password:"123456"}) > show dbs //从上查看 > show dbs //!!!若出现错误 Error: listDatabase failed:{ "note" : "from execCommand,"ok": 0,"errmsg" :"not master"} --> 执行 > rs.slaveok()
//副本集备份恢复 mongo MongoDB shell version: 3.0.7 connecting to: test lulu:PRIMARY> show dbs local 0.078GB mydb 0.078GB mydb2 0.078GB lulu:PRIMARY> use mydb switched to db mydb lulu:PRIMARY> show tables system.indexes testc lulu:PRIMARY> db.testc.find() lulu:PRIMARY> db.testc,insert({id:1,name:"lu",age:30}) WriteResult({ "nInserted" : 1}) lulu:PRIMARY> db.testc.find() { "_id" : ObjectId("56279c4d281af741f97bec57"), "id" : 1, "name" : "lu", "age" : 30} lulu:PRIMARY> db.testc.insert({id:2,name:"linux",age:20}) WriteResult({ "nInserted" : 1}) lulu:PRIMARY> db.testc.find() { "_id" : ObjectId("56279c4d281af741f97bec57"), "id" : 1, "name" : "lu", "age" : 30} { "_id: : ObjectId("56279c4d281af741f97bec58"), "id" : 2,"name" : "linux", "age" : 20} //备份 [root@localhost ~]# mongodump -d mydb -o /tmp/mongodbbakcup //将备份好的数据导入到新文件夹 [root@localhost ~]# mongoexport -d mydb -c testc -o /tmp/12345/testc.json --> -d 为库名 -c 为子库名 -o 为数据入到的目录 //恢复 ,需要指定最后具体恢复到的文件名 [root@localhost ~]# mongorestore -d mydb /tmp/mongodbbakcup/mydb /*!!!! 当恢复时,恢复到的文件夹已经存在了数据,则不能够覆盖 如果想要覆盖原来的数据 --〉 mongodrestore --drop /tmp/123 */
//mongodb结合php [root@localhost ~]# wget ‘http://codeload.github.com/mongodb/mongo-php-driver/zip/master‘ -O /usr/local/src/mong_php.zip [root@localhost ~]# cd /usr/local/src [root@localhost src]# unzip mong_php.zip [root@localhost src]# cd mongo-php-driver-master/ [root@localhost mongo-php-driver-master]# /usr/local/php/bin/phpize [root@localhost mongo-php-driver-master]# ./configure --with-php-config=/usr/local/php/bin/php-config [root@localhost mongo-php-driver-master]# make && make intstall [root@localhost mongo-php-driver-master]# vi /usr/local/php/etc/php.ini //ADD ... ... extension = mongo.so [root@localhost mongo-php-driver-master]# /usr/local/php/bin/php -m [root@localhost mongo-php-driver-master]# /etc/init.d/httpd restart [root@localhost mongo-php-driver-master]# /etc/init.d/php restart
标签:
原文地址:http://www.cnblogs.com/frankielf0921/p/5452375.html