五.设置路由程序
先启动配置服务器和分片服务器,后启动路由实例启动路由实例:(mongo1,mongo2,mongo3)
1.配置
操作服务器:(mongo1,mongo2,mongo3)
vim /usr/local/mongodb/conf/mongos.conf
pidfilepath =
/usr/local/mongodb/mongos/log/mongos.pid
logpath =
/usr/local/mongodb/mongos/log/mongos.log
logappend = true
#配置其他俩台的时候注意更改监听IP
bind_ip =
本机ip
port =
20000
fork = true
#监听的配置服务器,只能有1个或者3个 configs为配置服务器的副本集名字
configdb = configs/1.1.1.1:21000,1.1.1.2:21000,1.1.1.3:21000
#设置最大连接
maxConns=20000
2.启动 操作服务器:(mongo1,mongo2,mongo3)
mongos -f /usr/local/mongodb/conf/mongos.conf
3.初始化 操作服务器:(mongo1)
链接
mongo --host 1.1.1.1 --port 20000
进入admin数据库,将分片程序地址声明
use admin
sh.addShard("shard1/1.1.1.1:27001,1.1.1.2:27001,1.1.1.3:27001")
sh.addShard("shard1/1.1.1.1:27002,1.1.1.2:27002,1.1.1.3:27002")
sh.addShard("shard1/1.1.1.1:27003,1.1.1.2:27003,1.1.1.3:27003")
查看集群状态
sh.status()
六.添加权限
集群中配置权限,需要先创建一个admin用户,拥有root权限,然后再停止整个集群,开启权限验证后再启动集群。
1.创建用户 操作服务器:(mongo1)
登陆当前的路由程序,也就是数据库
mongo 1.1.1.1:20000
切换到admin库,创建一个admin账户,密码123456,属于root组,可以管理admin库
use admin
db.createUser({user:’admin’,pwd:’123456’,roles:[{ role : “root”, “db” : “admin” }]});``
返回1证明成功
db.auth('admin','123456')
2.创建KeyFile 操作服务器:(mongo1)
在分片集群环境中,副本集内成员之间需要用keyFile认证,mongos与配置服务器,副本集之间也要keyFile认证,集群所有mongod和mongos实例使用内容相同的keyFile文件。
创建keyFile
openssl rand -base64 753
3.复制KeyFile 操作服务器:(mongo1 mongo2 mongo3)
将显示的内容复制到KeyFile.key
mkdir -p /usr/local/mongodb/key
vim /usr/local/mongodb/key/KeyFile.key
chmod 700 /usr/local/mongodb/key/KeyFile.key
4.开启认证 操作服务器:(mongo1 mongo2 mongo3)
修改每个节点的/usr/local/mongodb/conf/
config.conf 和 shard1.conf 和 shard2.conf 和 shard3.conf
添加如下
#开启权限验证
auth=true
keyFile=/usr/local/mongodb/key/KeyFile.key
修改每个节点的mongos文件
vim /usr/local/mongodb/conf/mongos.conf
添加如下
代码语言:javascript复制keyFile=/ops/servers/mongodb/key/KeyFile.key
5.重启 操作服务器:(mongo1 mongo2 mongo3)
先停止服务,如果killall没有,则先yum安装psmisc
killall mongod
killall mongos
每个节点挨个启动配置服务
mongod -f /usr/local/mongodb/conf/config.conf
每个节点挨个启动分片服务
mongod -f /usr/local/mongodb/conf/shard1.conf
mongod -f /usr/local/mongodb/conf/shard2.conf
mongod -f /usr/local/mongodb/conf/shard3.conf
每个节点挨个启动路由服务
mongos -f /usr/local/mongodb/conf/mongos.conf
6.验证 操作服务器:(mongo1)
连接admin库或者其他库,去查询当前有的数据库或者其它操作,将会报错如下
链接
mongo 1.1.1.1:20000/admin
查看当前有哪些数据库
show dbs
会报错
使用账号密码登陆则正常使用
mongo 1.1.1.1:20000/admin -u admin -p 123456
show dbs
正常使用了
七.集群维护
1.启动monggo集群 mongodb的启动顺序是,先启动配置服务器,在启动分片,最后启动mongos.
在集群每个节点启动一遍
mongod -f /ops/server/mongodb/conf/config.conf
在集群每个节点启动一遍
mongod -f /ops/server/mongodb/conf/shard1.conf
mongod -f /ops/server/mongodb/conf/shard2.conf
mongod -f /ops/server/mongodb/conf/shard3.conf
在集群每个节点启动一遍
mongod -f /ops/server/mongodb/conf/mongos.conf
2.关闭mongo集群,直接killall杀掉所有进程
killall mongod
killall mongos