准备好两台测试服务器
主 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" ] }
然后下载命令行登录就得验证用户
[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
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
从库上面的配置文件
[root@root ~]# cd /usr/local/mongodb/bin/
[root@root 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