MongoDB的安装启动
一 配置及安裝
1、下載
地址:https://www.mongodb.com/download-center
2、解壓并配置
mongod沒有參數的情況下會使用默認數據目錄/data/db(Windows為C:\data\db),若目錄不存在或者不
可寫,服務會啟動失敗。
MongoDB默認端口為27017
二 啟動
1、前臺啟動
1)linux
運行mongod命令啟動數據庫服務器
- 1
注:也可以不加端口和ip,服務會使用默認的端口27017,并且可以直接使用./mongo連上本機的 mongoddb,一般用于臨時的開發測試
2)windows
執行mongod.exe
2、daemon方式運行
1)命令后加”&”
./mongod --dbpath /path/mongodb --bind_ip 10.10.10.10 --port 27021 &- 1
2)使用mongo字典的–fork參數
./mongod --dbpath /path/mongodb --bind_ip 10.10.10.10 --port 27021 --fork=true --logpath=/path/mongod.log- 1
3、用配置文件啟動
mongo.conf
port=27018 //綁定的端口 bind_ip=10.10.10.10 //綁定的ip,可綁定多個用","分開 dbpath=/data/db //mongodb數據文件存儲路徑 logpath=/data/db/mongod.log //mongod的日志路徑 pidfilepath=/data/db/mongod.pid logappend=true //日志使用追加代替覆蓋 fork=true- ?
- 1
注:后臺運行時如果需要優雅的關閉mongo進程,需要在bind_ip中增加127.0.0.1
4、啟動參數詳解
dbpath:mongodb的數據文件存儲路徑
logpath:mongodb的日志路徑
logappend:日志使用最佳代替覆蓋,boolean值
bind_ip:綁定的IP
port:綁定的端口
journal:write操作首先寫入”日志”,是一個數據安全的設置
5、啟動警告:WARNING: soft rlimits too low
1)內容
MongoDB shell version: 3.2.11 connecting to: test Server has startup warnings: 2017-05-09T12:34:19.688-0700 I CONTROL [initandlisten] 2017-05-09T12:34:19.688-0700 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 1024 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.- ?
mongodb當前限制:1024 processes, 64000 files
mongodb建議要求:processes = 0.5*files=32000(至少)
所以需要將 processes 從1024 改為 32000 或更大.
2)解決方法
方法一
修改配置文件 /etc/security/limits.d/90-nproc.conf
[root@localhost ~]# vi /etc/security/limits.d/90-nproc.conf
- ?
方法二
修改配置文件 /etc/security/limits.conf,添加配置信息:
[root@localhost ~]# vi /etc/security/limits.conf
- ?
修改配置文件然后重啟 mongod 服務
3)mongoDB推薦配置
- ?
三 Mongo Shell
MongoDB自帶JavaScript shell,是一個功能完備的JavaScript解釋器
1、進入本地shell
1)linux
新起一個進程,./mongo命令
- 1
2)windows
在mongo bin目錄執行mongo命令
2、幫助文檔
1)查看shell內置的幫助文檔
> help- 1
2)查看數據庫級別的幫助文檔
> db.help()- ?
3)查看集合級別的幫助文檔
> db.foo.help()- ?
4)查看響應函數的JavaScript實現代碼
直接在shell輸入函數名(函數名后不要輸入小括號)
- ?
5)查看復制集相關的幫助文檔
> rs.help()- ?
6)查看集群級別的幫助文檔
> sh.help()- ?
3、使用shell執行腳本
mongo shell會依次執行傳入的腳本,然后退出
1)使用本地mongod
- ?
2)使用指定的主機/端口上的mongod運行腳本
mongo --quiet server-1:30000/foo script1.js script2.js- ?
3)使用load()函數,從交互式shell中運行腳本
>load("script1.js")- ?
在腳本中可以訪問db變量,以及其他全局變量。shell輔助函數不可以在文件中使用
4、mongorc.js文件
如果某些腳本會被頻繁加載,可以將它們添加到mongorc.js文件中。這個文件會在啟動shell時自動運行。
//禁止刪除數據庫 db.dropDatabase = DB.prototype.dropDatabase = no;- ?
改變數據庫函數時,要確保同時對db變量和DB原型進行改變,如果只改變了其中一個,那么db變量可能沒
有改變,或者這些改變在新使用的所有數據庫中都不會生效。
四 常用命令
1、連接遠程數據庫
conn = new Mongo("some-host:port") db = conn.getDB("");- ?
db為全全局變量,是一個數據庫連接,這個變量是通過shell訪問MongoDB的主要入口點
2、輔助函數及對應JavaScript函數
use dbname db.getSisterDB("dbname") 切換當前DB show dbs db.getMongo().getDBs() 列出所有DB show collections|show tables db.getCollectionNames() 列出當前DB的所有集合 show logs 列出運行日志 show profile 列出當前DB的所有慢查詢 show users 列出當前DB的所有用戶- ??
3、格式化輸出查詢結果
> db.users.find().pretty()- ?
五 關閉mongoDB
1、前臺運行
默認的情況下,關閉shell,mongodb就停止運行了。
2、后臺運行
> use admin; > db.shutdownServer();- ?
注:此命令值允許在本地,或是一個經過認證的客戶端。
3、關閉主從式的復制集群
檢查從Mongodb的數據更新時間,如果所有的從MOngodb和主的時間差都超過10,這個時候不會關閉
mongodb(可以通過配置timeoutSecs的方式來讓從Mongodb完成數據的更新),如果其中有一個Mongodb
與主服務時間差在10s內,那么主服務器會關閉,并且等待從Mongodb更新完成并關閉
4、強制關閉服務
db.adminCommand({shutdown:1,force:true})|db.shutdownServer({force:true})
5、指定特定超時時間的關閉服務器
db.shutdownServer({force:true,timeoutsec:5})
六 可視化工具
1、MongoChef
下載地址:http://3t.io/mongochef/download/core/platform/
2、NoSQL Manager for MongoDB Professional
下載地址:https://www.mongodbmanager.com/download
?
使用可視化工具的時候需要在本地把mongodb給啟動起來,
1.添加mongodb到環境變量里邊,這樣就不用每次進入到bin目錄去執行mongo.conf的文件了。
2,把mongo添加到windows的本服務里面,直接點擊啟動也行,這樣不能再命令行里面執行了
3,必須以管理員身份運行cmd
?
配置文件啟動mongodb
<-----配置文件----->
#數據庫路徑
dbpath=E:\MongoDBDATA\data
#日志輸出文件路徑
logpath=E:\MongoDBDATA\log/mongo.log ?
#錯誤日志采用追加模式,配置這個選項后mongodb的日志會追加到現有的日志文件,而不是從新創建一個新文件
logappend=true ?
#啟用日志文件,默認啟用
journal=true ?
#這個選項可以過濾掉一些無用的日志信息,若需要調試使用請設置為false
quiet=true?
#端口號 默認為27017?
port=27017 ?
#http配置
#httpinterface=true
<-----配置文件----->
把?mongodb放到windows的自帶的服務里面
這樣開機就等于啟動了mongo
?
刪除 collections
db.dropDatabase()
刪除集合下面的數據
db.user,drop()
?
增加,插入數據。
查詢數據
更新數據
db.goods.update({name:"2i9",{$set:{class.name:"eeeeee"})? ? 更新集合下面的對象。。。。
查詢文檔
db.goods.find({name:'mi6'})
查詢文檔下面的子文檔
db.goods.find({name.class:'mi6'})
?
刪除數據
總結
以上是生活随笔為你收集整理的MongoDB的安装启动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab实现sift,SIFT算法的
- 下一篇: 微信红包问题:找出某个出现次数超过红包总