欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

CentOS 7下MongoDB的安裝配置詳解

 更新時(shí)間:2017年03月14日 09:09:46   作者:極其冷酷  
本篇文章主要介紹了CentOS 7下MongoDB的安裝配置詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

一、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)文章

最新評(píng)論