mongodb读写分离 php,Mongodb主从配置完美实现读写分离

一:使用命令行方式配置mongodb主从

[root@server11 ~]#  /usr/local/mongodb/bin/mongod --bind_ip 192.168.1.112 -port 3306 --dbpath /data/mongodb/db1/ --logpath /usr/local/mongodb/logs/server1.log  --rest --master &

[1] 14449

[root@server12 ~]#  /usr/local/mongodb/bin/mongod --bind_ip 192.168.1.113 --port 3306 --dbpath /data/mongodb/db2/ --logpath /usr/local/mongodb/logs/server2.log  --rest --slave --source 192.168.1.112:3306 &

[1] 16853

二:连接测试数据同步情况

[root@server11 ~]# /usr/local/mongodb/bin/mongo 192.168.1.112:3306

MongoDB shell version: 2.2.2

connecting to: 192.168.1.112:3306/test

>use test

switched to db test

>db.test.save({b:2})

>db.test.find()

{ "_id" : ObjectId("50fcb7f05712bfb21c866dc6"), "a" : 1 }

{ "_id" : ObjectId("50fcdccf252ef3433457646f"), "b" : 2 }

[root@server12 ~]# /usr/local/mongodb/bin/mongo 192.168.1.113:3306

MongoDB shell version: 2.2.2

connecting to: 192.168.1.113:3306/test

>use test

switched to db test

>db.test.find()

{ "_id" : ObjectId("50fcb7f05712bfb21c866dc6"), "a" : 1 }

{ "_id" : ObjectId("50fcdccf252ef3433457646f"), "b" : 2 }

三:创建repl用户,主要用于后续的安全认证同步

[root@server11 ~]#  /usr/local/mongodb/bin/mongo 192.168.1.112:3306

>use local

switched to db local

>db.addUser('repl','replication')

{

"user" : "repl",

"readOnly" : false,

"pwd" : "418b80a28664aeaeb1ec8bf792ea3052",

"_id" : ObjectId("50fce98cc4553449b56c6e9f")

}

[root@server12 ~]#  /usr/local/mongodb/bin/mongo 192.168.1.113:3306

>use local

switched to db local

>db.addUser('repl','replication')

{

"user" : "repl",

"readOnly" : false,

"pwd" : "418b80a28664aeaeb1ec8bf792ea3052",

"_id" : ObjectId("50fce98cc4553449b56c6e9f")

}

四:创建普通用户yang,master端创建即可

>use admin

switched to db admin

>db.addUser('yang','123')

>show users

{

"_id" : ObjectId("50fce0bd15861bedf081584a"),

"user" : "yang",

"readOnly" : false,

"pwd" : "c26040a2869fb7579c83e85c54faaffa"

}

>db.system.users.find()

{ "_id" : ObjectId("50fce0bd15861bedf081584a"), "user" : "yang", "readOnly" : false, "pwd" : "c26040a2869fb7579c83e85c54faaffa" }

五:重启mongodb主从实例,以auth方式启动,用户登录测试

[root@server11 ~]# /usr/local/mongodb/bin/mongod --bind_ip 192.168.1.112 --auth --port 3306 --dbpath /data/mongodb/db1/ --logpath /usr/local/mongodb/logs/server1.log

--rest --master &

[root@server12 ~]# /usr/local/mongodb/bin/mongod --bind_ip 192.168.1.113 --auth --port 3306 --dbpath /data/mongodb/db2/ --logpath /usr/local/mongodb/logs/server2.log

--rest --slave --source 192.168.1.112:3306 &

[root@server11 ~]# /usr/local/mongodb/bin/mongo 192.168.1.112:3306

MongoDB shell version: 2.2.2

connecting to: 192.168.1.112:3306/test

>use admin

switched to db admin

>show users

Mon Jan 21 14:42:47 uncaught exception: error: {

"$err" : "unauthorized db:test ns:test.system.users lock type:1 client:192.168.1.112",

"code" : 10057

}

>db.auth('yang','123')

1

>show users

{

"_id" : ObjectId("50fce0bd15861bedf081584a"),

"user" : "yang",

"readOnly" : false,

"pwd" : "c26040a2869fb7579c83e85c54faaffa"

}

再次登录web界面需要输入用户名和密码!

112249758.jpg

五:使用配置文件管理mongodb

[root@server11 ~]# cat /etc/mongodb.conf

fork=true

quiet=true

bind_ip=192.168.1.112

port=3306

dbpath= /data/mongodb/db1

logpath= /usr/local/mongodb/logs/server1.log

logappend=true

journal=true

rest=true

master=true

auth=true

[root@server11 ~]# /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf

all output going to: /usr/local/mongodb/logs/server1.log

forked process: 5831

child process started successfully, parent exiting

[root@server11 ~]# netstat -ntpl |grep mongo

tcp        0      0 192.168.1.112:3306          0.0.0.0:*                   LISTEN      5831/mongod

tcp        0      0 192.168.1.112:4306          0.0.0.0:*                   LISTEN      5831/mongod

[root@server12 ~]# cat /etc/mongodb.conf

fork=true

quiet=true

bind_ip=192.168.1.113

port=3306

dbpath= /data/mongodb/db2

logpath= /usr/local/mongodb/logs/server2.log

logappend=true

journal=true

rest=true

slave=true

source=192.168.1.112:3306

auth=true

[root@server12 ~]# /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf

all output going to: /usr/local/mongodb/logs/server2.log

forked process: 3064

child process started successfully, parent exiting

[root@server11 ~]# /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf  --shutdown

[root@server12 ~]# /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf  --shutdown

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值