準備好兩臺測試服務器
主 10.0.0.3
從 10.0.0.4linux
1、兩臺服務器安裝mongodb數據庫mongodb
第一步:建立好目錄
mkdir -p /data_master/tools/
cd /data_master/tools/shell
第二步:下載完安裝包並解壓
#下載
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/profilecurl
第五步:建立數據庫目錄
#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_slaveide
2、主服務器啓動mongodb
第六步:命令行中運行mongodb服務
cd /usr/local/mongodb/bin
./mongod -dbpath /data_master/db -master測試
3、從服務器啓動mongodb
第六步:命令行中運行mongodb服務
cd /usr/local/mongodb/bin
./mongod -dbpath /data_master/db_slave -slave -source 10.0.0.3:27017url
在報錯的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
4、帶帳戶驗證的主從複製
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" ] }
而後下載命令行登陸就得驗證用戶
[root@vm-11a001mz 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
注意啊,兩個庫的操做要一致。
主庫上面的配置文件
[root@root backup]# cd /usr/local/mongodb/bin/
[root@root bin]# cat mongodb.conf
master = on
dbpath = /data_master/db
logpath = /data_master/mongdb/log/mongo.log
port = 27017
fork = true
nohttpinterface = true
#打開認證
auth = on
#主庫
#master = on
#密鑰
keyFile = /root/mongo-keyfile
從庫上面的配置文件
[root@root ~]# cd /usr/local/mongodb/bin/
[root@root bin]# cat mongodb.conf
dbpath = /data_master/db_slave
logpath = /data_master/mongdb/log/mongo.log
port = 27017
#從庫
slave = on
source = 10.0.0.3:27017
fork = true
nohttpinterface = true#打開認證auth = on#密鑰keyFile = /root/mongo-keyfile#repair = on