CentOS 7下MongoDB的安裝配置詳解
一、Mongodb安裝
以下安裝步驟以dp用戶執(zhí)行
1. 下載mongodb 3.4.2的安裝包:
“mongodb-linux-x86_64-rhel70-3.4.2.tgz”,放在~/software下。
2. 解壓該文件包:
$ cd ~/software $ tar -xf mongodb-linux-x86_64-rhel70-3.4.2.tgz
得到文件夾 mongodb-linux-x86_64-rhel70-3.4.2/,其中的bin文件夾包含Mongodb的所有可執(zhí)行文件。
3. 將bin文件夾拷貝到dp用戶的默認(rèn)可執(zhí)行文件目錄~/bin
$ mv bin ~/
4. 創(chuàng)建數(shù)據(jù)庫(kù)文件夾
創(chuàng)建數(shù)據(jù)庫(kù)文件目錄,放在~/data/db下
$ mkdir -p ~/data/db
啟動(dòng)mongod服務(wù)
$ mongod -dbpath ~/data/db -port 7974
如可以啟動(dòng),則安裝成功。如不成功,可能需要進(jìn)行SELinux配置,允許MongoDB可以在相應(yīng)端口啟動(dòng)
# semanage port -a -t mongod_port_t -p tcp 7974
注:7974是本項(xiàng)目MongoDB使用的端口,代替默認(rèn)端口 27017
二、MongoDB配置
1. 寫(xiě)配置腳本:
創(chuàng)建一個(gè)腳本mongod.conf,存放在/home/dp/data/mongodb/config下,內(nèi)容為
systemLog: destination: file ###日志存儲(chǔ)位置 path: /home/dp/data/mongodb/log/mongod.log logAppend: true storage: ##journal配置 journal: enabled: true ##數(shù)據(jù)文件存儲(chǔ)位置 dbPath: /home/dp/data/db/ ##是否一個(gè)庫(kù)一個(gè)文件夾 directoryPerDB: true ##數(shù)據(jù)引擎 engine: wiredTiger ##WT引擎配置 wiredTiger: engineConfig: ##WT最大使用cache(根據(jù)服務(wù)器實(shí)際情況調(diào)節(jié)4~8) cacheSizeGB: 4 ##是否將索引也按數(shù)據(jù)庫(kù)名單獨(dú)存儲(chǔ) directoryForIndexes: true ##表壓縮配置,數(shù)據(jù)壓縮算法,可選值“none”、“snappy”、“zlib” collectionConfig: blockCompressor: none ##索引配置 indexConfig: prefixCompression: true ##使mongo進(jìn)程成為系統(tǒng)集成(父id為1) processManagement: fork: true ##端口配置,將默認(rèn)端口設(shè)為7974(默認(rèn)為27017) net: port: 7974
2. 取消透明大頁(yè):
MongoDB建議關(guān)閉Linux系統(tǒng)默認(rèn)開(kāi)啟的透明大頁(yè)功能,可編輯rc.local文件,使其在系統(tǒng)啟動(dòng)的時(shí)候關(guān)閉:
編輯rc.local文件:
[root@localhost ~]# vim /etc/rc.d/rc.local
增加下列內(nèi)容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi
保存退出,然后賦予rc.local文件執(zhí)行權(quán)限:
[root@fx dp]# chmod +x /etc/rc.d/rc.local
再重啟系統(tǒng)即可。
3. 將MongoDB設(shè)為開(kāi)機(jī)啟動(dòng)
在CentOS 7下使用systemctl服務(wù)管理方式配置MongoDB的啟動(dòng):
CentOS 7的服務(wù)systemctl腳本存放在/usr/lib/systemd/,MongoDB需要開(kāi)機(jī)不登陸就能運(yùn)行,就要存在系統(tǒng)服務(wù)/usr/lib/systemd/system目錄下。
每一個(gè)服務(wù)以.service結(jié)尾,如mongod.service。內(nèi)容分為3部分:[Unit]、[Service]和[Install]
[Unit] Description=MongoDB database server After=network.target After=syslog.target [Service] #Type=forking #一次性啟動(dòng),mongod的后臺(tái)保持由mongod自己的配置文件中定義 Type=oneshot User=dp #PIDFile=/home/dp/data/mongodb/pid ExecStart=/usr/bin/numactl --interleave=all /home/dp/bin/mongod -f /home/dp/data/mongodb/config/mongod.conf #ExecReload= #ExecStop= PrivateTmp=true [Install] WantedBy=multi-user.target
注:MongoDB建議關(guān)閉NUMA功能,用 numactl --interleave=all 方式啟動(dòng) mongod 進(jìn)程
腳本按照上面編寫(xiě)完成后,以754的權(quán)限保存在/usr/lib/systemd/system目錄下,這時(shí)就可以利用systemctl進(jìn)行配置:
- 重新加載配置文件用systemctl daemon-reload
- 用systemctl start mongod可測(cè)試服務(wù)是否可以成功運(yùn)行
- 如果不能運(yùn)行則可以使用systemctl status mongod查看錯(cuò)誤信息和其他服務(wù)信息。
如果無(wú)法啟動(dòng)MongoDB,可檢查日志/home/dp/data/mongodb/log/mongod.log,如果是由于如下錯(cuò)誤:
WiredTiger error (13) [1488260221:910792][6102:0x7f33bf806dc0], file:WiredTiger.wt, connection: /home/dp/data/db/WiredTiger.turtle: handle-open: open: Permission denied
可能是由于WiredTiger.turtle的權(quán)限不足,或所有者不是dp用戶,可以用chmod、chown、chgrp命令修改該文件的屬性。
使用systemctl enable mongod就可以將所編寫(xiě)的服務(wù)添加至開(kāi)機(jī)啟動(dòng)。
三、MongoDB的安全配置
1. 修改登陸端口號(hào)和IP
在配置文件/home/dp/data/mongodb/config/mongod.conf下,定義:
net: bindIp: 127.0.0.1,192.168.117.55 port: 79742017/3/8 16:59:55 2017/3/8 16:59:58
2. 添加認(rèn)證用戶
在剛安裝完畢的時(shí)候,MongoDB都默認(rèn)有一個(gè)admin數(shù)據(jù)庫(kù),此時(shí)admin數(shù)據(jù)庫(kù)是空的,沒(méi)有記錄權(quán)限相關(guān)的信息。當(dāng)集合admin.system.users中一個(gè)用戶都沒(méi)有時(shí),即使mongod啟動(dòng)時(shí)添加了—auth參數(shù),如果沒(méi)有在admin數(shù)據(jù)庫(kù)中添加用戶,此時(shí)不進(jìn)行任何認(rèn)證還是可以做任何操作(不管是否是以—auth 參數(shù)啟動(dòng)),直到在admin.system.users中添加了一個(gè)用戶。加固的核心是只有在admin.system.users中添加用戶之后,mongodb的認(rèn)證,授權(quán)服務(wù)才能生效。
步驟一:在未開(kāi)啟認(rèn)證的環(huán)境下,登錄到數(shù)據(jù)庫(kù)
[dp@fx]$ mongo 127.0.0.1:7974
步驟二:切換到admin數(shù)據(jù)庫(kù)
> use admin
步驟三:創(chuàng)建管理員賬號(hào)
>db.createUser({user:"ems",pwd:"pubugou2017",roles:["root"]})
新增的用戶在 db.system.users 中
> db.getCollectionNames() [ "system.indexes", "system.users", "system.version" ]
說(shuō)明:
1)MongoDB從V3版本開(kāi)始取消使用addUser方法,采用db.createUser方法創(chuàng)建用戶;
2)賬號(hào)不要設(shè)置為常見(jiàn)賬號(hào),密碼需要滿足一定的復(fù)雜度,至少8位以上,包括大小寫(xiě)字母、數(shù)字、特殊字符混合體,不要使用生日、姓名、身份證編號(hào)等常見(jiàn)密碼。
步驟四:驗(yàn)證用戶是否創(chuàng)建成功
> db.auth("supper","supWDxsf67%H") 1 > exit bye
步驟五:殺掉進(jìn)程,重啟mongoDB服務(wù)
四、Mongodb C drive安裝
1. 下載Mongodb C驅(qū)動(dòng)文件解壓
下載地址為:mongo-c-driver 1.61
2. 運(yùn)行配置腳本
$ ./configure –disable-automatic-init-and-cleanup
3. 編譯
$ make
4. 安裝
$ sudo make install
注:使用 sudo 應(yīng)先對(duì)dp用戶的sudo權(quán)限進(jìn)行設(shè)置,命令為
# visudo
或者使用root用戶
# make install
安裝生成的頭文件在/usr/local/include/libmongoc-1.0下,庫(kù)文件在/usr/local/lib下。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Ubuntu18.04安裝Nvidia顯卡驅(qū)動(dòng)教程(圖文)
這篇文章主要介紹了Ubuntu18.04安裝Nvidia顯卡驅(qū)動(dòng)教程(圖文),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07SpringBoot整合Activiti7的實(shí)現(xiàn)代碼
這篇文章主要介紹了SpringBoot整合Activiti7的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Centos 64位安裝aapt、jdk、tomcat的詳細(xì)教程
這篇文章主要介紹了Centos 64位安裝aapt、jdk、tomcat的相關(guān)資料,需要的朋友可以參考下2016-11-11Windows10安裝linux子系統(tǒng)的兩種方式(圖文詳解)
這篇文章主要介紹了Windows10安裝linux子系統(tǒng)的兩種方式,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Linux下動(dòng)態(tài)鏈接庫(kù)加載路徑及搜索路徑問(wèn)題
這篇文章主要介紹了Linux下動(dòng)態(tài)鏈接庫(kù)加載路徑及搜索路徑問(wèn)題,需要的朋友可以參考下2018-04-04centos 修改ssh默認(rèn)端口號(hào)的方法示例
這篇文章主要介紹了centos 修改ssh默認(rèn)端口號(hào)的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02Linux中搭建完整的samba服務(wù)器全攻略(centos版)
smb是一個(gè)協(xié)議名,它能被用于Web連接和客戶端與服務(wù)器之間的信息溝通。這篇文章主要介紹了Linux中搭建samba服務(wù)器全攻略(centos版),需要的朋友可以參考下2018-11-11CentOS7按時(shí)間段截取指定的Tomcat日志到指定文件的方法
這篇文章主要介紹了CentOS7按時(shí)間段截取指定的Tomcat日志到指定文件的方法的,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11linux 定時(shí)休眠的實(shí)現(xiàn)思路
這篇文章主要介紹了linux 定時(shí)休眠的實(shí)現(xiàn)思路,休眠的類型有三種類型,文章對(duì)每種類型介紹的都很詳細(xì),需要的朋友可以參考下2018-07-07