一:使用命令行方式配置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界面需要输入用户名和密码!
五:使用配置文件管理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
参考文章:http://docs.mongodb.org/manual/administration/master-slave/
本文转自斩月博客51CTO博客,原文链接http://blog.51cto.com/ylw6006/1123826如需转载请自行联系原作者
ylw6006