linux下配置安裝mongodb
阿新 • • 發佈:2018-12-24
- 在官網http://www.mongodb.org/downloads下載mongodb
- 解壓 tar xzf mongodb-linux-x86_64-2.4.8.tgz
- 建立mongodb存放的資料檔案,我是在壓縮後的當前目錄建立dada/mongodb
- sudo mkdir data
- cd data
- mkdir mongodb
- 進入mongodb-linux-x86_64-2.4.8/bin,啟動mongodb
- 輸入命令:/home/zhongkeli/tools/mongodb-linux-x86_64-2.4.8/bin/mongod --dbpath=/home/zhongkeli/tools/mongodb-linux-x86_64-2.4.8/data/mongodb/ --logpath=/home/zhongkeli/tools/mongodb-linux-x86_64-2.4.8/logs --logappend --port=27017
--fork
- 然後過一段時間就會出現:about to fork child process, waiting until server is ready for connections.
forked process: 29517
all output going to: /home/zhongkeli/tools/mongodb-linux-x86_64-2.4.8/logs
child process started successfully, parent exiting - 設定mongodb自動啟動,將如下命令新增到 /etc/rc.local:/home/zhongkeli/tools/mongodb-linux-x86_64-2.4.8/bin/mongod --dbpath=/home/zhongkeli/tools/mongodb-linux-x86_64-2.4.8/data/mongodb/
--logpath=/home/zhongkeli/tools/mongodb-linux-x86_64-2.4.8/logs --logappend --port=27017 --fork
- 檢查埠是否啟動,埠為:27017
- 在bin資料夾執行mongo檢視安裝是否成功
- connecting to: test,test是預設的一個collection,在mongodb中,collection相當於關係型資料庫的表,但並不需提前建立,更不需要預先定義欄位,更多關於coolection可以檢視http://blog.csdn.net/kingfengks/article/details/6067429
- 輸入命令:/home/zhongkeli/tools/mongodb-linux-x86_64-2.4.8/bin/mongod --dbpath=/home/zhongkeli/tools/mongodb-linux-x86_64-2.4.8/data/mongodb/ --logpath=/home/zhongkeli/tools/mongodb-linux-x86_64-2.4.8/logs --logappend --port=27017
--fork
- (可選)在安裝mongodb的使用者下新增如下環境變數,以便直接使用mongodb bin目錄下的命令
PATH=$PATH:$HOME/bin:/home/zhongkeli/tools/mongodb-linux-x86_64-2.4.8/bin - 以下是mongodb啟動時的常用引數說明:
--bind_ip 繫結IP,繫結後只能繫結的IP訪問服務
--dbpath 指定資料庫目錄
--port 指定資料庫埠,預設是27107
--logpath 指定日誌存放目錄
--logappend 使用追加的方式寫日誌
--pidfilepath 指定程序檔案,不指定則不產生程序檔案
--journal 啟用日誌
--maxConns 最大的併發連線數,預設2000
--fork 將服務放到後臺執行
--notablescan 不允許表掃描
--syncdelay 資料寫入硬碟的時間(秒),0是不等待,直接寫入
- 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()
- 1. 超級使用者相關:
- 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':'[email protected]','Al':['[email protected]','[email protected]']})
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':'[email protected]'}).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()