本教程使用軟件,使用默認端口,(須要開啓27017端口)linux
mongodb-linux-x86_64-rhel70-3.4.4.tgz
Mongodb官網:https://www.mongodb.com/
下載地址:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.4.tgzmongodb
建立數據目錄數據庫
mkdir -p /data/db chmod -R 777 /data
下載mogodb到本身喜歡的目錄json
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.4.tgz
解壓並進入bin目錄數組
tar -zxvf mongodb-linux-x86_64-rhel70-3.4.4.tgz cd mongodb-linux-x86_64-rhel70-3.4.4/ cd bin
啓動Mongodb安全
./mongod
測試
這個時候發現不是後臺啓動(不能關閉),能夠另外開啓一個ssh進行測試。
打開mongo(和上一個命令不同,沒有最後面的d)進入MongoDB後臺管理 Shell服務器
./mongo
vi mongod.conf
輸入如下內容架構
dbpath=/data/db/ logpath=/data/db/mongo.log logappend=true fork=true port=27017
啓動app
./mongod -f ./mongod.conf
./mongod -dbpath /data/db/ -logpath /data/db/mongo.log -logappend -fork -port 27017
--quiet # 安靜輸出 --port arg # 指定服務端口號,默認端口27017 --bind_ip arg # 綁定服務IP,若綁定127.0.0.1,則只能本機訪問,不指定默認本地全部IP --logpath arg # 指定MongoDB日誌文件,注意是指定文件不是目錄 --logappend # 使用追加的方式寫日誌 --pidfilepath arg # PID File 的完整路徑,若是沒有設置,則沒有PID文件 --keyFile arg # 集羣的私鑰的完整路徑,只對於Replica Set 架構有效 --unixSocketPrefix arg # UNIX域套接字替代目錄,(默認爲 /tmp) --fork # 以守護進程的方式運行MongoDB,建立服務器進程 --auth # 啓用驗證 --cpu # 按期顯示CPU的CPU利用率和iowait --dbpath arg # 指定數據庫路徑 --diaglog arg # diaglog選項 0=off 1=W 2=R 3=both 7=W+some reads --directoryperdb # 設置每一個數據庫將被保存在一個單獨的目錄 --journal # 啓用日誌選項,MongoDB的數據操做將會寫入到journal文件夾的文件裏 --journalOptions arg # 啓用日誌診斷選項 --ipv6 # 啓用IPv6選項 --jsonp # 容許JSONP形式經過HTTP訪問(有安全影響) --maxConns arg # 最大同時鏈接數 默認2000 --noauth # 不啓用驗證 --nohttpinterface # 關閉http接口,默認關閉27018端口訪問 --noprealloc # 禁用數據文件預分配(每每影響性能) --noscripting # 禁用腳本引擎 --notablescan # 不容許表掃描 --nounixsocket # 禁用Unix套接字監聽 --nssize arg (=16) # 設置信數據庫.ns文件大小(MB) --objcheck # 在收到客戶數據,檢查的有效性, --profile arg # 檔案參數 0=off 1=slow, 2=all --quota # 限制每一個數據庫的文件數,設置默認爲8 --quotaFiles arg # number of files allower per db, requires --quota --rest # 開啓簡單的rest API --repair # 修復全部數據庫run repair on all dbs --repairpath arg # 修復庫生成的文件的目錄,默認爲目錄名稱dbpath --slowms arg (=100) # value of slow for profile and console log --smallfiles # 使用較小的默認文件 --syncdelay arg (=60) # 數據寫入磁盤的時間秒數(0=never,不推薦) --sysinfo # 打印一些診斷系統信息 --upgrade # 若是須要升級數據庫
Replicaton 參數ssh
--fastsync # 從一個dbpath裏啓用從庫複製服務,該dbpath的數據庫是主庫的快照,可用於快速啓用同步 --autoresync # 若是從庫與主庫同步數據差得多,自動從新同步, --oplogSize arg # 設置oplog的大小(MB)
主/從參數
--master # 主庫模式 --slave # 從庫模式 --source arg # 從庫 端口號 --only arg # 指定單一的數據庫複製 --slavedelay arg # 設置從庫同步主庫的延遲時間
Replica set(副本集)選項:
--replSet arg # 設置副本集名稱
Sharding(分片)選項
--configsvr # 聲明這是一個集羣的config服務,默認端口27019,默認目錄/data/configdb --shardsvr # 聲明這是一個集羣的分片,默認端口27018 --noMoveParanoia # 關閉偏執爲moveChunk數據保存
./mongo
use tesataa
db.createUser({user:"useraa",pwd:"123456",roles:[{role:"dbOwner",db:"tesataa"}]})
db.createUser()參數說明 (做爲配置參考)
官方文檔地址:https://docs.mongodb.com/manual/reference/method/db.createUser/
格式
{ user: "<name>", pwd: "<cleartext password>", customData: { <any information> }, roles: [ { role: "<role>", db: "<database>" } | "<role>", ... ] }
user文檔字段介紹:
user字段,爲新用戶的名字; pwd字段,用戶的密碼; cusomData字段,爲任意內容,例如能夠爲用戶全名介紹; roles字段,指定用戶的角色,能夠用一個空數組給新用戶設定空角色; 在roles字段,能夠指定內置角色和用戶定義的角色。
Built-In Roles(內置角色):
1.數據庫用戶角色:read、readWrite; 2.數據庫管理角色:dbAdmin、dbOwner、userAdmin; 3.集羣管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 4.備份恢復角色:backup、restore; 5.全部數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 6.超級用戶角色:root // 這裏還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase) 7.內部角色:__system //關於每一個角色所擁有的操做權限能夠點擊上面的內置角色連接查看詳情。
writeConcern文檔(官方說明)
w選項:容許的值分別是 一、0、大於1的值、"majority"、<tag set>; j選項:確保mongod實例寫數據到磁盤上的journal(日誌),這能夠確保mongd之外關閉不會丟失數據。設置true啓用。 wtimeout:指定一個時間限制,以毫秒爲單位。wtimeout只適用於w值大於1。
netstat -antpl
帶認證的啓動mongodb(-auth 開啓密碼認證)
./mongod -dbpath /data/db/ -logpath /data/db/mongo.log -logappend -fork -port 27017 -auth
測試(我以前就在tesataa數據庫裏面加了一個col集合並添加了一條數據,mongodb增,刪,改,查等操做命令本文不作具體解釋)
使用密碼登陸
db.auth("useraa","123456")