標籤: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一主一叢有使用者認證的搭建