成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比咸豐網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式咸豐網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋咸豐地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。/>參考: http://www.runoob.com/mongodb/mongodb-linux-install.html
介紹:
a MongoDB是由C++語言編寫的一個基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng),它的目的在于為WEB應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案。
b MongoDB是一個介于關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系型數(shù)據(jù)庫當中功能最豐富,最像關(guān)系型數(shù)據(jù)庫的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,會將數(shù)據(jù)存儲為一個文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值對(key=>value)組成,是類似于json的bson格式,字段值可以包含其它文檔、數(shù)組和文檔數(shù)組,因此可以存儲比較復雜的數(shù)據(jù)類型。
c MongoDB大的特點就是它支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系型數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。
d MongoDB的主要特點(來自于網(wǎng)上,主要為了我們初步了解)
d.1 MongoDB提供了一個面向文檔存儲,操作起來比較簡單和容易的非關(guān)系型數(shù)據(jù)庫。
d.2 你可以在MongoDB記錄中設(shè)置任何屬性的索引來實現(xiàn)更快的排序。
d.3 你可以通過本地u或者網(wǎng)絡(luò)創(chuàng)建數(shù)據(jù)鏡像,這使得MongoDB含有更強的擴展性。
d.4 如果負載的增加(需要更多的存儲空間和更強的處理能力),它可以分布在計算機網(wǎng)絡(luò)中的其它節(jié)點上,這就是所謂的分片。
d.5 MongoDB支持豐富的查詢表達式,查詢指令使用JSON形式的標記,可輕易查詢文檔中內(nèi)嵌的對象和數(shù)組。 d.6 MongoDB使用update()命令可以實現(xiàn)替換完成的文檔(數(shù)據(jù))或者一些指定的數(shù)據(jù)字段。 d.7 MongoDB中的Map/Reduce主要是用來對數(shù)據(jù)進行批量處理和聚合操作,Map函數(shù)調(diào)用emit(key,value)遍歷集合中所有的記錄,將key于value傳遞給Reduce函數(shù)進行處理。另外Map函數(shù)和Reduce函數(shù)是使用JavaScript編寫的,所以可以通過db.runCommand和mapreduce命令來執(zhí)行MapReduce操作。 d.8 GridFS是MongoDB中的一個內(nèi)置功能,可以用于存放大量小文件。
d.9 MongoDB允許在服務(wù)端執(zhí)行腳本,可以用JavaScript編寫某個函數(shù),直接在服務(wù)端執(zhí)行,也可以吧函數(shù)的定義存儲在服務(wù)端,下次直接調(diào)用即可。
d.10 MongoDB支持各種編程語言:RUBY、PYTHON、JAVA、C++、PHP、C#等多種語言并且MongoDB的安裝也非常簡單
f MongoDB官網(wǎng):/tupian/20230521/
g MongoDB學習網(wǎng)站:http://www.runoob.com/mongodb
一、MongoDB的安裝
下載社區(qū)版
/tupian/20230521/try />
tar -zxvf mongodb-linux-x86_64-3.2.8.tgz
建立兩個目錄:
/u01/mongnodb/
/u01/mongodb/data/db
/u01/mongodb/logs
修改別名
vim /etc/hosts
127.0.0.1 bogon
啟動
./bin/mongod --dbpath /u01/mongodb/data/db
輸入命令lsof -i :27017,監(jiān)測端口已經(jīng)在使用中,所以說啟動已經(jīng)完成。
二、MongoDB配置
MongoDB的啟動參數(shù),可以在命令行指定,也可以通過配置文件
./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/log/mongod.log --fork --auth
或者
./mongo --config=/u01/mongnodb/mongno.conf
cat /u01/mongnodb/mongno.conf
#Data file Path
#dbpath=/u01/mongodb/mongodb-linux-x86_64-rhel70-3.4.9/bin/mongod --dbpat
dbpath = /u01/mongodb/data/db
#Log file path
logpath = /u01/mongodb/mongodb-linux-x86_64-rhel70-3.4.9/logs/mongodb.log
logAppend=true
#綁定IP
#bind_ip=127.0.0.1
#port
port = 27017
# 以守護進程方式啟動
fork = true
#日志輸出方式,使用追加的方式寫日志
logappend = true
#PID File
pidfilepath=/u01/mongodb/mongodb-linux-x86_64-rhel70-3.4.9/mongodb.pid
#關(guān)閉http接口,默認關(guān)閉27018端口訪問
#nohttpinterface = true
#聲明這是一個集群分片
#shardsvr = true
#設(shè)置每個數(shù)據(jù)庫將被保存在一個單獨的目錄
#directoryperdb=true
#開啟認證
#auth = true
#設(shè)置開啟簡單的rest API ,置后打開28017網(wǎng)頁端口
#rest = true
##分片配置
sharding:
##指定config server
configDB: 10.96.29.2:29017,10.96.29.2:29018,10.96.29.2:29019
三、MongoDB用戶授權(quán)和管理
1、mongodb安裝好后第一次進入是不需要密碼的,也沒有任何用戶,通過shell命令可直接進入,cd到mongodb目錄下的bin文件夾,執(zhí)行命令./mongo即可
# ./bin/mongo
1)顯示數(shù)據(jù)庫
> show dbs
admin 0.000GB
local 0.000GB
2)使用/創(chuàng)建admin的庫。權(quán)限管理就要使用admin數(shù)據(jù)庫
> use admin
switched to db admin
3)我第一次登陸時只有一個system.version表,system.users都沒有,沒關(guān)系可以建一個用戶就有了。
system.user表,這張表是用來存放超級管理員的
> show collections
system.users
system.version
4)查詢system.user表中含有數(shù)據(jù)否
> db.system.users.find()
{ "_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "Fyaf2IGrGbC+kDyTZpe/tg==", "storedKey" : "Um7slisABOWPosz8h0XsxV18b68=", "serverKey" : "AwpUC8YlyvpGnncuxUaYzHKEkuw=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
{ "_id" : "svideo.vdb", "user" : "vdb", "db" : "svideo", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "C8xTDX0YZqOxybT/2lkvgw==", "storedKey" : "9Vty4qpDso2F5793zIOoscobefk=", "serverKey" : "q8d+EwCuQcCLeTTGIAHC3djnKmw=" } }, "roles" : [ { "role" : "dbOwner", "db" : "svideo" } ] }
2、添加管理用戶(mongoDB 沒有無敵用戶root,只有能管理用戶的用戶 userAdminAnyDatabase),
db.createUser({
user:'admin',
pwd:'123456',
roles:[
{role:'userAdminAnyDatabase',db:'admin'},
{role:'dbAdminAnyDatabase',db:'admin'},
{role:'clusterMonitor',db:'admin'}
]
})
use mydb
db.createUser({
user:'vdb',
pwd:'123456',
roles:[{role:'dbOwner',db:'svideo'}]
})
角色:
userAdminAnyDatabase
dbOwner
readWrite
3、添加完管理用戶后,關(guān)閉MongoDB,并使用權(quán)限方式再次開啟MongoDB,這里注意不要使用kill直接去殺掉mongodb進程,(如果這樣做了,請去data/db目錄下刪除mongo.lock文件),可以使用db.shutdownServer()關(guān)閉
> db.shutdownServer()
2017-09-15T21:23:01.223+0800 I NETWORK [thread1] trying reconnect to 127.0.0.1:27017 (127.0.0.1) failed
2017-09-15T21:23:01.223+0800 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2017-09-15T21:23:01.223+0800 I NETWORK [thread1] reconnect 127.0.0.1:27017 (127.0.0.1) failed failed
server should be down...
4、添加好用戶后,就可以使用權(quán)限方式啟動MongoDB
./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/log/mongod.log --fork --auth
或者
./mongo --config=/u01/mongnodb/mongno.conf
在mongno.conf指定參數(shù) auth = true
5、進入mongo shell,使用admin數(shù)據(jù)庫并進行驗證,如果不驗證,是做不了任何操作的。
> use admin
> db.auth("admin","123456") #認證,返回1表示成功
6、驗證之后還是做不了操作,因為admin只有用戶管理權(quán)限,下面創(chuàng)建用戶,用戶都跟著庫走,
> use mydb
> db.createUser({user: "app",pwd: "123456",roles: [{ role: "readWrite", db: "mydb" }]})
7、使用創(chuàng)建的用戶root登錄進行數(shù)據(jù)庫操作:
mongo 127.0.0.1/mydb -uapp -p
mongo 127.0.0.1/mydb -uvdb -p
或者使用:
./mongo -u username -p password --port port --authenticationDatabase databaseName
./mongo databaseName -u username -p password --port port
然后就可以進行增刪改查各種數(shù)據(jù)操作…
Mongodb的關(guān)閉:
前臺運行:(不以守護進程方式啟動)
如果沒有使用--fork,直接可以前臺退出終端關(guān)閉。通過這種方式,Mongodb將會自己做清理退出,把沒有寫好的數(shù)據(jù)寫完成,并最終關(guān)閉數(shù)據(jù)文件。要注意的是這個過程會持續(xù)到所有操作都完成。
后臺運行:(以守護進程方式啟動 fork = true)
如果使用--fork在后臺運行mongdb服務(wù),那么就要通過向服務(wù)器發(fā)送shutdownServer()消息來關(guān)閉。
1、普通命令:
$ ./mongod
> use admin
> db.shutdownServer()
Mongodb啟動幫助
mongod --help
如果啟動時指定端口號了,不是默認的27017, 連接時也必須指定端口
mongo 127.0.0.1:27019
參考:
http://www.runoob.com/mongodb/mongodb-linux-install.html
MongoDB Authentication slow my TPS?
http://www.mongoing.com/archives/4623
網(wǎng)頁名稱:MongoDB安裝配置及用戶權(quán)限-創(chuàng)新互聯(lián)
鏈接分享:
http://weahome.cn/article/psedj.html