一、 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();(慎重)