說實話,本是不想寫這種基礎篇的,可是我配置的時候網上教程雖然一大把,但大多數都是缺胳膊少腿的,或者描述不詳細的,在此我就按個人部署經驗,手把手的教一遍linux
若是哪裏漏了或者有描述不清楚的地方,能夠聯繫我,這種基礎文章我要麼不寫,既然寫了,那都是打算持續更新的,就像以前的基礎文章在VsCode中搭建Go開發環境,手把手教你配置git
本文基於MongoDB4.0,CentOS環境搭建部署github
這是篇解決問題的,就不廢話了,按着步驟來,咱啥也不用想就能部署mongodb
由於考慮到有的公司部署的Linux服務器不能鏈接外網,這裏以FTP形式將壓縮包上傳到Linux服務器後解壓安裝shell
tar -xvzf mongodb-linux-x86_64-3.2.10.tgz //解壓
// 此處需ROOT權限
mv mongodb-linux-x86_64-3.2.10 /usr/local/mongodb //將解壓後的文件移動到指定目錄並更名
cd /usr/local/mongoDB/ //切換到移動後的mongoDB目錄
複製代碼
關於能夠鏈接外網安裝的話,MongoDB的官網就寫的挺不錯的,畢竟我也沒弄過聯網下載,我就不瞎寫了數據庫
好了,接着說解壓後咱們的操做vim
cd /usr/local/mongodb/ //切換到mongodb
mkdir data //建立data目錄
mkdir data/db //建立db 目錄,用於存儲數據庫數據
mkdir log //建立log日誌目錄,存儲日誌數據
複製代碼
先建立咱們的配置文件數組
cd /usr/local/mongodb/ //切換到mongodb
mkdir conf // 建立config文件的目錄
vim conf/mongoDB.conf // 建立並打開conf文件
複製代碼
接着填寫咱們的Conifg文件配置內容安全
# mongodb config file
port=27888 #端口
bind_ip= 127.0.0.1,192.168.105.142 #開啓外網訪問則爲0.0.0.0
dbpath=/usr/local/mongoDB/data/db #數據庫存放
logpath=/usr/local/mongoDB/log/mongodb.log #日誌文件存放
fork=true #設置後臺運行
# auth=true #開啓認證
複製代碼
先將auth=true註釋,由於新部署的MongoDB尚未建立用戶,若是直接開啓,將會致使MongoDB沒法啓動bash
因此只要如果想要給MongoDB設置訪問權限,在設置好帳號密碼後,將auth=true
取消註釋,從新啓用下MongoDB便可
系統profile文件的配置,這是每裝一個軟件的必備步驟,在profile文件最後面添加環境變量
vim /etc/profile
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
複製代碼
如果不喜歡用vim
進行文本添加,也可使用echo
對文件內容的尾行追加內容
echo 'export MONGODB_HOME=/usr/local/mongodb' >> /etc/profile
echo 'export PATH=$PATH:$MONGODB_HOME/bin' >> /etc/profile
複製代碼
上述操做二選一便可,不過都須要重啓系統配置才能生效,記住不要重複執行
source /etc/profile
複製代碼
到這一步,MongoDB該安裝的該配置的都已經弄好了,接下來咱們就須要啓動咱們的MongoDB
由於啓動參數咱們都配置到config中,因此直接以config形式來啓動
mongod --config ../conf/mongodb.conf
複製代碼
在這裏我建議使用Studio 3T
鏈接咱們的MongoDB服務器來建立用戶,沒什麼別的理由,就是簡單罷了
先給大家截圖操做一下在Studio 3T
中咱們該怎麼設置用戶權限
選擇要設置權限的庫,添加用戶
再給用戶分配權限
非admin庫,用戶通常只須要分配readWrite
權限便可
而admin庫,咱們要留一個管理員帳戶,分配root
權限,以備不時之需。可是正常操做的時候,能不使用有root
權限的用戶,就不要使用,不只容易進行一些危險操做,也會致使生成一些只有root
用戶才能操做的文件。換句話說就是影響數據庫的穩定性
好了,咱們再來看看用shell
怎麼建立用戶,這我就建立一個admin下權限爲root
和userAdminAnyDatabase
的用戶吧
db.createUser(
{
user: "naonao",
pwd: "123456",
roles:[
{role:"root",db:"admin"}
,{role:"userAdminAnyDatabase",db:"admin"}
]
})
複製代碼
能夠看到,roles
裏面是一個Json
數組,因此若是咱們只須要一個權限,roles
數組中的元素保留一個便可
採用用戶登錄方式以前記得先把MongoDB服務關了,把配置文件內的用戶驗證auth=true
註釋取消
進入mongoDB/bin
文件路徑下
cd /usr/mongoDB/bin
複製代碼
而後使用帳號密碼以及指定對應的端口,來啓動咱們的MongoDB,若是是默認的27017端口,能夠不進行指定
mongo -u "username" -p "password" -authenticationDatabase "admin" --port 27888
複製代碼
帳戶默認驗證的就是admin,因此若是是屬於admin數據庫的用戶,那麼把--authenicationDatabase "admin"
去掉也不要緊
若是使用的用戶名密碼,是屬於別的庫,那麼就必需要指定對應的庫咯~把'admin'
改爲登錄用戶對應的庫便可
> use admin
> db.shutdownServer()
複製代碼
或者直接kill
對應的Mongo進程
先查詢MongoDB的進程
ps -aux | grep mongo
複製代碼
killall
MongoDB的全部相關進程
killall mongo
複製代碼
有時候使用kill
指定mongo
對應的pid
沒法結束進程,killall
執行後mongo
進程仍是依然存在,那麼只好拿出殺手鐗killall -9 mongo
不過killall -9
是一個危險的命令,這個強大和危險的命令迫使進程在運行時忽然終止,進程在結束後不能自我清理。危害是致使系統資源沒法正常釋放,通常不推薦使用,除非其餘辦法都無效。
MongoDB在如今已經搭建完成,在Linux上已經能夠正常使用咯
咱們的MongoDB加了帳號密碼後如果依然不放心安全性,能夠將咱們的端口進行變更,不使用默認的端口27017
端口進行改變後,咱們要記得在Linux上打開對應的端口,不然客戶端是沒法鏈接上咱們的MongoDB服務器的
打開端口有兩種方法,一種是一次性生效,重啓後須要從新打開端口。另一種是永久生效,服務器重啓也不影響端口的開放
在這我將MongoDB的端口設爲27888
Linux重啓後,端口須要從新開放:
iptables -I INPUT -p tcp --dport 27888 -j ACCEPT
複製代碼
永久生效: 在/etc/sysconfig/iptables文件內加上下面這句命令
-A INPUT -p tcp -m tcp --dport 27888 -j ACCEPT
# 重啓iptables
service iptables restart
複製代碼
若是iptables
文件不存在,那咱們直接建立一個就行了
有時候咱們會重啓服務器,可是不免有些東西會忘記打開,或者別的同事重啓了服務器,他不知道怎麼開
因此咱們須要配置成MongoDB自動打開,這樣就能避免不少沒必要要的麻煩
cd /etc/rc.d
# 將MongoDB的啓用方式追加到rc.local文件內
echo '/usr/local/mongoDB/bin/mongod --config /usr/local/mongoDB/conf/mongodb.conf' >> rc.local
複製代碼
若是咱們對MongoDB設置了自定義端口,可不要忘了端口也要配置成開機自動打開哦
在這也寫上Linux關機/重啓的命令吧,能夠驗證下咱們配置的重啓生效的內容是否成功
重啓命令: reboot(如今從新啓動計算機)
shutdown now(如今從新啓動計算機)
關機命令:shutdown -h now(馬上進行關機)
halt(馬上進行關機)
poweroff(馬上進行關機)
複製代碼
通常狀況下咱們鏈接Linux服務器都是使用遠程鏈接,因此執行reboot
便可,關機命令就別嘗試了,知道這玩意就行了,畢竟……遠程鏈接的狀況下,關了後你咋開機呢???