一、 mongodb安装
1、 配置yum
/etc/yum.repos.d/mongodb.repo[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/
gpgcheck=0
enabled=1
2、 安装yum install mongo-10gen mongo-10gen-server
3、 修改配置文件
/etc/mongod.conf
dbpath=/home/mongodb #数据库路径
logpath=/home/mongodb/mongod.log #日志文件路径
logappend=true #日志文件末尾添加
fork = true #在后台运行
port = 27017 #端口
pidfilepath = /home/mongodb/mongod.pid #pid文件路径
slave = true #指定为从机器,如果是主master = true
source = 10.0.0.39 #指定主机器的IP地址,如果是主source = 127.0.0.1
slavedelay= 10 #指从复制检测的时间间隔
4、 启动
mongod --fork --config=/etc/mongod.conf
二、 常用命令
1.use database; #创建一个数据库或进入一个数据库
2.db.dropDatabase(); #删除当前所在的数据库
3. show dbs; #查看所有数据库
4. db; #查看当前所在的数据库
5. db.createCollection('replicationColletion', {'capped':true, 'size':10240, 'max':17855200}) #创建集合(表)
userInfo = { "name" : "ysb" , "age" : "20"}; #定义插入字段及数据
db. replicationColletion.save(userInfo); #插入数据
db.replicationColletion.find(); #查看数据
或db. replicationColletion.save({ "name" : "ysb" , "age" : "20"}) #直接插入并保存
6. db.users.update({age: 25}, {$set: {name: 'changeName'}}, false, true); #更改数据
7. db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true); #更改数据
8. db.users.remove({age: 132}); #删除数据
9. db.replicationColletion.drop() #删除集合
10. show collections #查看集合
11. db.replicationColletion.count() #查看集合中数据数量
12. db.getCollection("replicationColletion") #查看指定名称的聚集集合
13. show tables; #查看库下所有表 (集合)
14. db. replicationColletion.stats(); #查看一个集合的状态
> db.crashinfo.stats();
{
"ns" : "mobo.crashinfo", #集合的名称
"count" : 634, #集合中的数量
"size" : 726784, #集合中数据占用空间大小,,不包括索引,单位为字节
"avgObjSize" : 1146.3470031545742, #平均对象占用的空间大小
"storageSize" : 1740800, #给整个集合分配的存储空间,当删除集合中的文档时,这个值不会降低
"numExtents" : 4, #连续分配的数据块
"nindexes" : 1, #索引个数,每个集合至少有一个 _id 索引
"lastExtentSize" : 1310720, #最近分配的块的大小
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 32704, #所有索引大小总和
"indexSizes" : { #列出集合的所有索引字段,以及索引大小
"_id_" : 32704
},
"ok" : 1
}
15. db.printCollectionStats(); #查看当前所有集合状态
16. db. replicationColletion.totalSize(); #查看聚集集合总大小
17. db. replicationColletion.storageSize(); #查看聚集集合存储空间大小
18. db.themes.find({themeId: {$in: [8,9]}},{packageFile:true}); = select createTime from themes where themeId in (8,9); #查询
19. db.system.users.find(); #查看系统下所有用户
20. db.addUser('user_reader','123',true); #添加用户
21. db.auth("user_reader”,”123”); #认证用户
22. db.removeUser("userName"); #删除用户
23. mongodump -h 10.60.145.18 -d anthcraft -o /home #备份数据库
24. mongorestore –drop #恢复数据库
常见错误日志:
1. Mon May 12 12:02:20.285 [conn548915] info DFM::findAll(): extent 0:24f000 was empty, skipping ahead. ns:anthcraft.jpwallpapers
当在mongodb中删除了大量的数据后,经常出现
意思是太多闲置的空间(删除体积较大的集合,或删除大量文档后腾出的空间)。
可以通过修复命令来压缩数据。
use test
db.repairDatabase();(慎重)