Linux環(huán)境下安裝MongoDB

MongoDB在Windows上的安裝過程整體上來說并不難甘苍,網(wǎng)上的資料也比較多舌稀,這里我就不介紹了舀凛,我主要說下如何在Linux環(huán)境下安裝MongoDB珊蟀。


環(huán)境:

CentOS 7
MongoDB 3.4.9


下載MongoDB

首先去MongoDB官網(wǎng)下載MongoDB,地址https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.9.tgz覆糟。將下載的文件放到/opt目錄下刻剥。

解壓

解壓下載到的tgz文件,并給文件夾重命名為mongodb,然后創(chuàng)建db滩字、logs目錄分別用來存放數(shù)據(jù)和日志透敌。如下:

圖片描述

配置

進(jìn)入到bin目錄下盯滚,編輯mongodb.conf文件,內(nèi)容如下:

dbpath=/opt/mongodb/db
logpath=/opt/mongodb/logs/mongodb.log
port=27017
fork=true
nohttpinterface=true

執(zhí)行結(jié)果如下:

圖片描述

測試

做完這一切之后酗电,我們就可以啟動(dòng)MongoDB了,還是在bin目錄下内列,執(zhí)行./mongod -f mongodb.conf命令表示啟動(dòng)MongoDB撵术,然后執(zhí)行mongo命令表示表示進(jìn)入到MongDB的控制臺(tái),進(jìn)入到控制臺(tái)之后话瞧,我們輸入db.version()命令嫩与,如果能顯示出當(dāng)前MongoDB的版本號(hào),說明安裝成功了交排。如下:

圖片描述

默認(rèn)情況下划滋,連接地址是127.0.0.1:27017,連接的數(shù)據(jù)庫是test數(shù)據(jù)庫埃篓,我們也可以手動(dòng)指定連接地址和連接的數(shù)據(jù)庫:

mongo 127.0.0.1:27017/admin

此時(shí)連接成功之后处坪,輸入db命令,我們可以看到當(dāng)前連接的數(shù)據(jù)庫是admin架专。

配置開機(jī)啟動(dòng)

我們也可以配置開機(jī)啟動(dòng)同窘,編輯/etc/rc.d/rc.local文件,如下:

圖片描述

配置完成之后自行關(guān)機(jī)重啟測試部脚。

配置環(huán)境變量

每次都要進(jìn)入到安裝目錄中去輸入命令想邦,麻煩,我們直接配置環(huán)境變量即可委刘,編輯當(dāng)前用戶目錄下的.bash_profile文件丧没,如下:

圖片描述

關(guān)閉MongoDB服務(wù)

使用db.shutdownServer();命令可以關(guān)閉到MongoDB服務(wù),但是這個(gè)命令的執(zhí)行要在admin數(shù)據(jù)庫下锡移,所以先切換到admin呕童,再關(guān)閉服務(wù),完整運(yùn)行過程如下:

圖片描述

安全管理

上面我們所做的所有的操作都沒有涉及到用戶罩抗,我們?cè)谟肙racle拉庵、MySQL或者M(jìn)SSQL時(shí)都有用戶名密碼需要登錄才可以操作,MongoDB中當(dāng)然也有套蒂,但是需要我們手動(dòng)添加钞支。在添加之前,我們先來說說MongoDB中用戶管理的幾個(gè)特點(diǎn):

1.MongoDB中的賬號(hào)是在某一個(gè)庫里邊進(jìn)行設(shè)置的操刀,我們?cè)谀囊粋€(gè)庫里邊進(jìn)行設(shè)置烁挟,就要在哪一個(gè)庫里邊進(jìn)行驗(yàn)證。
2.創(chuàng)建用戶時(shí)骨坑,我們需要指定用戶名撼嗓、用戶密碼和用戶角色柬采,用戶角色表示了該用戶的權(quán)限。

OK且警,假設(shè)我給admin數(shù)據(jù)庫創(chuàng)建一個(gè)用戶粉捻,方式如下:

use admin
db.createUser({user:"root",pwd:"123",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

user表示用戶名,pwd表示密碼斑芜,role表示角色肩刃,db表示這個(gè)用戶應(yīng)用在哪個(gè)數(shù)據(jù)庫上。用戶的角色杏头,有如下幾種(參考資料):

角色名 備注
Read 允許用戶讀取指定數(shù)據(jù)庫
readWrite 允許用戶讀寫指定數(shù)據(jù)庫
dbAdmin 允許用戶在指定數(shù)據(jù)庫中執(zhí)行管理函數(shù)盈包,如索引創(chuàng)建、刪除醇王,查看統(tǒng)計(jì)或訪問system.profile
userAdmin 允許用戶向system.users集合寫入呢燥,可以找指定數(shù)據(jù)庫里創(chuàng)建、刪除和管理用戶
clusterAdmin 只在admin數(shù)據(jù)庫中可用寓娩,賦予用戶所有分片和復(fù)制集相關(guān)函數(shù)的管理權(quán)限叛氨。
readAnyDatabase 只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀權(quán)限
readWriteAnyDatabase 只在admin數(shù)據(jù)庫中可用根暑,賦予用戶所有數(shù)據(jù)庫的讀寫權(quán)限
userAdminAnyDatabase 只在admin數(shù)據(jù)庫中可用力试,賦予用戶所有數(shù)據(jù)庫的userAdmin權(quán)限
dbAdminAnyDatabase 只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的dbAdmin權(quán)限排嫌。
root 只在admin數(shù)據(jù)庫中可用畸裳。超級(jí)賬號(hào),超級(jí)權(quán)限

用戶創(chuàng)建成功之后淳地,我們關(guān)閉掉當(dāng)前MongoDB服務(wù)實(shí)例怖糊,然后重新啟動(dòng)新的實(shí)例,啟動(dòng)方式如下:

mongod -f /opt/mongodb/bin/mongodb.conf --auth

啟動(dòng)成功之后颇象,如果我們直接執(zhí)行如下命令伍伤,會(huì)提示沒有權(quán)限:

show dbs

執(zhí)行結(jié)果如下:

"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
"code" : 13,
"codeName" : "Unauthorized"

此時(shí)我們需要先進(jìn)入到admin數(shù)據(jù)庫中,然后授權(quán)遣钳,操作如下:

use admin
db.auth("root","123")

auth方法執(zhí)行結(jié)果返回1表示認(rèn)證成功扰魂。然后再去執(zhí)行show dbs就可以看到預(yù)期結(jié)果了。此時(shí)我再在sang庫下創(chuàng)建一個(gè)只讀用戶蕴茴,如下:

use sang
db.createUser({user:"readuser",pwd:"123",roles:[{role:"read",db:"sang"}]})

創(chuàng)建成功之后劝评,再按照上面的流程進(jìn)入到sang庫中,使用readuser用戶進(jìn)行認(rèn)證倦淀,認(rèn)證成功之后一切我們就可以在sang庫中執(zhí)行查詢操作了蒋畜,步驟如下:

use sang
db.auth("readuser","123")

做完這兩步之后再執(zhí)行查詢操作就沒有任何問題了,但是此時(shí)如果執(zhí)行插入操作會(huì)提示沒有權(quán)限撞叽,那我們可以創(chuàng)建一個(gè)有讀寫功能的用戶執(zhí)行相應(yīng)的操作姻成,這里就不再贅述插龄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市科展,隨后出現(xiàn)的幾起案子均牢,更是在濱河造成了極大的恐慌,老刑警劉巖辛润,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膨处,死亡現(xiàn)場離奇詭異,居然都是意外死亡砂竖,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門鹃答,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乎澄,“玉大人,你說我怎么就攤上這事测摔≈眉茫” “怎么了?”我有些...
    開封第一講書人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵锋八,是天一觀的道長浙于。 經(jīng)常有香客問我,道長挟纱,這世上最難降的妖魔是什么羞酗? 我笑而不...
    開封第一講書人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮紊服,結(jié)果婚禮上檀轨,老公的妹妹穿的比我還像新娘。我一直安慰自己欺嗤,他們只是感情好参萄,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著煎饼,像睡著了一般讹挎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吆玖,一...
    開封第一講書人閱讀 52,793評(píng)論 1 314
  • 那天筒溃,我揣著相機(jī)與錄音,去河邊找鬼衰伯。 笑死铡羡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的意鲸。 我是一名探鬼主播烦周,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼尽爆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了读慎?” 一聲冷哼從身側(cè)響起漱贱,我...
    開封第一講書人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎夭委,沒想到半個(gè)月后幅狮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡株灸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年崇摄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慌烧。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡逐抑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屹蚊,到底是詐尸還是另有隱情厕氨,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布汹粤,位于F島的核電站命斧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏嘱兼。R本人自食惡果不足惜国葬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望遭京。 院中可真熱鬧胃惜,春花似錦、人聲如沸哪雕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽斯嚎。三九已至利虫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間堡僻,已是汗流浹背糠惫。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钉疫,地道東北人硼讽。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像牲阁,于是被迫代替她去往敵國和親固阁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子壤躲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361