node項(xiàng)目部署——阿里云centos部署mongodb

本教程是在阿里云cenots下部署mongodb的過(guò)程瞭稼,整個(gè)過(guò)程遇到不少坑忽洛,浪費(fèi)了很多時(shí)間。
在網(wǎng)上查了很多教程环肘,但是由于教程大多太久了欲虚,環(huán)境都不一樣了,所以教程絕大部分走不通廷臼。為此走過(guò)不少坑苍在,所以在此做一下記錄。

環(huán)境:

系統(tǒng):阿里云centos 7.3 64位
mongodb版本: 3.4
阿里云專有網(wǎng)絡(luò)

因?yàn)槭褂脃um安裝非常方便荠商,所以下文使用yum安裝寂恬,。

修改yum包管理配置:

vi /etc/yum.repos.d/mongodb-org-3.4.repo   // 會(huì)自動(dòng)新建mongodb-org-3.4.repo文件

復(fù)制下面配置信息:

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=0
enabled=1

tips: 不懂linux去惡補(bǔ)下基礎(chǔ)知識(shí)(vi 編輯器)

安裝mongodb

yum install -y mongodb-org   // 一路yes安裝mongodb

啟動(dòng)mongodb

systemctl start mongod.service  // 啟動(dòng)mongodb

停止mongodb

systemctl stop mongod.service  // 停止mongodb

重啟mongodb

systemctl restart mongod.service  // 重啟mongodb

設(shè)置mongodb開機(jī)啟動(dòng)

systemctl enable mongod.service   // 設(shè)置開機(jī)啟動(dòng)

tips: centos 7將service命令 改為systemctl莱没。

mongodb安裝成功初肉,默認(rèn)配置文件路徑為:/etc/mongod.conf。執(zhí)行cat /etc/mongod.conf,查看文件的配置饰躲。

配置文件是yaml 語(yǔ)法:

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log  // 日志文件儲(chǔ)存路徑

storage:
  dbPath: /var/lib/mongo        // 數(shù)據(jù)儲(chǔ)存路徑
  journal:
    enabled: true

你也可以更改儲(chǔ)存路徑牙咏,更改路徑時(shí)應(yīng)先新建相關(guān)文件夾和文件,這里不做修改嘹裂。

本地連接mongodb:

mongo               // 連接本地mongodb
show dbs            // 查看所有數(shù)據(jù)庫(kù)
use mydb            // 切換mydb數(shù)據(jù)庫(kù)妄壶,沒(méi)有會(huì)自動(dòng)添加
show collections    // 查看集合

默認(rèn)情況下,mongodb是沒(méi)有安全驗(yàn)證的寄狼,都可以連接到該數(shù)據(jù)庫(kù)丁寄。因?yàn)閙ongodb要求是部署在一個(gè)安全的環(huán)境中,而不需要驗(yàn)證泊愧。

遠(yuǎn)程連接:

在本地window中伊磺,打開cmd,執(zhí)行mongo 192.168.31.54 (192.168.31.54為你的阿里云服務(wù)器外網(wǎng)地址)删咱,發(fā)現(xiàn)連接不上屑埋,網(wǎng)上找了很長(zhǎng)時(shí)間,終于解決了痰滋。

還有在本地centos中摘能,防火墻默認(rèn)開啟時(shí),27017端口默認(rèn)是沒(méi)有開放的敲街,所以需要手動(dòng)開啟防火墻的端口徊哑。

systemctl status firewalld  # 查看防火墻狀態(tài)
firewall-cmd --zone=public --add-port=27017/tcp --permanent # mongodb默認(rèn)端口號(hào)
firewall-cmd --reload  # 重新加載防火墻

firewall-cmd --zone=public --query-port=27017/tcp # 查看端口號(hào)是否開放成功,輸出yes開放成功聪富,no則失敗

1莺丑、在阿里云esc實(shí)例中設(shè)置安全組,把27017端口開放,mongodb 默認(rèn)端口為27017梢莽,阿里云為了安全端口默認(rèn)都是關(guān)閉的萧豆。

2、修改mongodb配置文件:

vi /etc/mongod.conf          // 編輯配置文件
net:
  port: 27017
  bindIp: 127.0.0.1  // mongodb 默認(rèn)綁定的IP地址

默認(rèn)情況下昏名,阿里云只綁定了127.0.0.1本地地址涮雷,只能本地訪問(wèn),需要在上面加上阿里云內(nèi)網(wǎng)地址轻局。

bindIp: 127.0.0.1,阿里云內(nèi)網(wǎng)地址

重啟mongodb服務(wù)器:

systemctl restart mongod.service

在本地cmd中再執(zhí)行

mongo 阿里云外網(wǎng)地址  // 發(fā)現(xiàn)現(xiàn)在可以連接上了洪鸭。

到此本地和遠(yuǎn)程都可以連接上mongodb了,遠(yuǎn)程可以用可視化工具Robomongo連接仑扑,直接輸入阿里云外網(wǎng)地址和端口號(hào)27017即可以遠(yuǎn)程連接成功览爵。雖然遠(yuǎn)程可以連接上mongodb,但是只要知道阿里云外網(wǎng)地址镇饮,誰(shuí)都可以通過(guò)遠(yuǎn)程連接到數(shù)據(jù)庫(kù)蜓竹,并且修改數(shù)據(jù)庫(kù)了的數(shù)據(jù),這樣是非常不安全的储藐。所以實(shí)際部署中是不建議bindIp里面加上阿里云內(nèi)網(wǎng)地址的俱济,只能通過(guò)本地訪問(wèn)。遠(yuǎn)程連接只是為了能方便用可視化工具Robomongo方便管理數(shù)據(jù)庫(kù)钙勃。如果要想用Robomongo蛛碌,又想數(shù)據(jù)庫(kù)不能隨便被別人連接上可以嗎?當(dāng)然可以辖源,只需開啟身份認(rèn)證左医。

默認(rèn)情況下mongodb是關(guān)閉身份認(rèn)證的,開啟身份認(rèn)證需如下步驟:

1同木、修改mongodb配置文件

vi /etc/mongod.conf             // 編輯mongod.conf文件

security:                       // 去掉security前面#
    authorization: enabled      // 添加這句開啟認(rèn)證

在網(wǎng)上看了很多教程關(guān)于開啟身份認(rèn)證的,使用auth=true發(fā)現(xiàn)不行跛十,后來(lái)才知道是教程太老了彤路,配置字段都變了,坑的我找了很長(zhǎng)時(shí)間。

2芥映、添加超級(jí)管理員

默認(rèn)Mongodb是沒(méi)有管理員等用戶信息的洲尊,開啟身份認(rèn)證是需要添加用戶信息驗(yàn)證。首先添加的應(yīng)該是admin數(shù)據(jù)庫(kù)里的管理員賬號(hào)奈偏,他用于其他數(shù)據(jù)庫(kù)的用戶添加坞嘀、修改、刪除等一些權(quán)限控制惊来。

執(zhí)行如下操作:

mongo                   // 本地連接數(shù)據(jù)庫(kù)
use admin               // 切換到admin數(shù)據(jù)庫(kù)丽涩,沒(méi)有會(huì)自動(dòng)添加
db.createUser(          // 創(chuàng)建管理員用戶
  {
    user: "admin",      // 賬號(hào)
    pwd: "admin",       // 密碼
    roles: [ { role: "root", db: "admin" } ] // 角色:超級(jí)管理員,數(shù)據(jù)庫(kù):admin
  }
)

創(chuàng)建成功后會(huì)輸出Successfully added user。矢渊。继准。

重啟mongodb

systemctl restart mongod.service

執(zhí)行

mongo                       // 連接數(shù)據(jù)庫(kù)
show dbs                    // 顯示所有數(shù)據(jù)庫(kù),這步會(huì)報(bào)錯(cuò)矮男,說(shuō)沒(méi)有通過(guò)驗(yàn)證移必。
use admin                   // 切換到admin數(shù)據(jù)庫(kù)
db.auth('admin','admin')    // 用上面設(shè)置的賬號(hào)密碼登錄
如果返回 '1'表示驗(yàn)證成功, 如果是 '0' 表示驗(yàn)證失敗

身份驗(yàn)證開啟了毡鉴,在window端cmd中執(zhí)行下面命令

mongo 阿里云外網(wǎng)地址           // 發(fā)現(xiàn)連接失敗崔泵,因?yàn)闆](méi)有通過(guò)驗(yàn)證。
如果執(zhí)行下面這句
mongo 阿里云外網(wǎng)地址 -u "admin" -p "admin" --authenticationDatabase admin  
// 發(fā)現(xiàn)連接成功

Robomongo身份認(rèn)證連接:

切換到Authorization選項(xiàng)猪瞬,選中Perform authorization,填上Database, user name, password,就可以連接成功了憎瘸。

mongodb不像mysql,驗(yàn)證的用戶對(duì)所有數(shù)據(jù)庫(kù)都有讀寫的能力撑螺,不同的庫(kù)需要配置相關(guān)的用戶信息才能對(duì)該庫(kù)進(jìn)行讀寫含思。比如有個(gè)myblog的數(shù)據(jù)庫(kù),需要對(duì)其有讀寫的能力甘晤,新建一個(gè)具有讀寫能力的用戶含潘。

命令如下:

mongo           // 連接數(shù)據(jù)庫(kù)
use admin       // 切換到admin數(shù)據(jù)庫(kù)
db.auth('admin','admin')        // auth驗(yàn)證登錄
use myblog                      // 切換到myblog數(shù)據(jù)庫(kù)
db.createUser(          // 創(chuàng)建普通用戶
  {
    user: "keen",       // 賬號(hào)
    pwd: "123",     // 密碼
    roles: [ { role: "readWrite", db: "myblog" } ] // 角色:讀寫,數(shù)據(jù)庫(kù):myblog
  }
)
db.auth('keen', '123')          // 使用新建用戶keen驗(yàn)證登錄

到此整個(gè)mongodb配置結(jié)束了,關(guān)于mongodb的身份認(rèn)證线婚,以及權(quán)限控制遏弱,可以看看這篇文章,寫的很詳細(xì)塞弊。<傳送門>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末漱逸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子游沿,更是在濱河造成了極大的恐慌饰抒,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诀黍,死亡現(xiàn)場(chǎng)離奇詭異袋坑,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)眯勾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門枣宫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人吃环,你說(shuō)我怎么就攤上這事也颤。” “怎么了郁轻?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵翅娶,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)故觅,這世上最難降的妖魔是什么厂庇? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮输吏,結(jié)果婚禮上权旷,老公的妹妹穿的比我還像新娘。我一直安慰自己贯溅,他們只是感情好拄氯,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著它浅,像睡著了一般译柏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上姐霍,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天鄙麦,我揣著相機(jī)與錄音,去河邊找鬼镊折。 笑死胯府,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的恨胚。 我是一名探鬼主播骂因,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼赃泡!你這毒婦竟也來(lái)了寒波?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤升熊,失蹤者是張志新(化名)和其女友劉穎俄烁,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體级野,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡页屠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了勺阐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡矛双,死狀恐怖渊抽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情议忽,我是刑警寧澤懒闷,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響愤估,放射性物質(zhì)發(fā)生泄漏帮辟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一玩焰、第九天 我趴在偏房一處隱蔽的房頂上張望由驹。 院中可真熱鬧,春花似錦昔园、人聲如沸蔓榄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)甥郑。三九已至,卻和暖如春荤西,著一層夾襖步出監(jiān)牢的瞬間澜搅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工邪锌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勉躺,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓秃流,卻偏偏與公主長(zhǎng)得像赂蕴,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子舶胀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容