MongoDB一主一叢有使用者認證的搭建

來源:互聯網
上載者:User

標籤:mongodb主從   mongodb使用者認證   

準備好兩台測試伺服器
主 10.0.0.3
從 10.0.0.4

一、兩台伺服器安裝mongodb資料庫

第一步:建立好目錄
mkdir -p /data_master/tools/
cd /data_master/tools/

第二步:下載完安裝包並解壓
#下載
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
#解壓
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

第三步:將解壓包拷貝到指定目錄
mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb

第四步:添加環境變數並重啟環境變數
echo "export PATH=/usr/local/mongodb/bin:$PATH" >>/etc/profile
source /etc/profile

第五步:建立資料庫目錄
#MongoDB的資料存放區在data目錄的db目錄下,但是這個目錄在安裝過程不會自動建立,所以你需要手動建立data目錄,並在data目錄中建立db目錄。
#以下執行個體中我們將data目錄建立於根目錄下(/)。
#注意:/data/db 是 MongoDB 預設的啟動的資料庫路徑(--dbpath)。
mkdir -p /data_master/db
mkdir -p /data_master/mongdb/log
mkdir -p /data_master/db_slave

二、主伺服器啟動mongodb
第六步:命令列中運行mongodb服務
cd /usr/local/mongodb/bin
./mongod -dbpath /data_master/db -master

三、從伺服器啟動mongodb
第六步:命令列中運行mongodb服務
cd /usr/local/mongodb/bin
./mongod -dbpath /data_master/db_slave -slave -source 10.0.0.3:27017

在報錯的slave機器上執行 rs.slaveOk()方法即可。

rs.slaveOk()
show dbs
local 0.078GB
test 0.078GB
use test
switched to db test
show collections
system.indexes
users
db.users.find()
{ "_id" : ObjectId("55763d98db85929bb8addedf"), "username" : "lwb" }
{ "_id" : ObjectId("55764a694b24187a7a3c6693"), "username" : "mongodb master-sla

四、帶賬戶驗證的主從複製

openssl rand -base64 741 > /root/mongo-keyfile
主庫產生這個設定檔
產生完成後把許可權改小一些
scp傳送給從庫
許可權給成400最好
(後期因為許可權的問題可能會有報錯)

然後在沒有設定使用者驗證的情況下 先進入主庫和從庫的mongodb 進行設定使用者
設定驗證的使用者和密碼

use admin
switched to db admin
db.createUser( { user:‘dbAdmin‘, pwd:‘aqMkDuYbRAvfgJk‘, roles:["root"] } );
Successfully added user: { "user" : "dbAdmin", "roles" : [ "root" ] }
use jhpicdb
switched to db jhpicdb
db.createUser( { user:‘jhpicdb‘, pwd:‘aqMkDuYbRAvfgJk‘, roles:["readWrite"] } );
Successfully added user: { "user" : "admin", "roles" : [ "readWrite" ] }

然後下載命令列登入就得驗證使用者
[[email protected] log]# mongo
MongoDB shell version: 3.0.6
connecting to: test

use admin
switched to db admin
db.auth("dbAdmin","aqMkDuYbRAvfgJk");
1
show dbs
admin 0.078GB
jhpicdb 49.930GB
local 0.078GB

注意啊,兩個庫的操作要一致。

主庫上面的設定檔
[[email protected] backup]# cd /usr/local/mongodb/bin/
[[email protected] bin]# cat mongodb.conf

idae - MongoDB config start - 20180203

master = on

設定資料檔案的存放目錄

dbpath = /data_master/db

設定記錄檔的存放目錄及其記錄檔名

logpath = /data_master/mongdb/log/mongo.log

設定連接埠號碼(預設的連接埠號碼是 27017)

port = 27017

設定為以守護進程的方式運行,即在後台運行

fork = true

nohttpinterface = true

nohttpinterface = true
#開啟認證
auth = on
#主庫
#master = on
#密鑰
keyFile = /root/mongo-keyfile

從庫上面的設定檔
[[email protected] ~]# cd /usr/local/mongodb/bin/
[[email protected] bin]# cat mongodb.conf

idae - MongoDB config start - 20180203設定資料檔案的存放目錄

dbpath = /data_master/db_slave

設定記錄檔的存放目錄及其記錄檔名

logpath = /data_master/mongdb/log/mongo.log

設定連接埠號碼(預設的連接埠號碼是 27017)

port = 27017
#從庫
slave = on
source = 10.0.0.3:27017

設定為以守護進程的方式運行,即在後台運行

fork = true

nohttpinterface = true

nohttpinterface = true
#開啟認證
auth = on
#密鑰
keyFile = /root/mongo-keyfile
#repair = on

MongoDB一主一叢有使用者認證的搭建

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.