准备好两台测试服务器 主 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