您的位置:首页 > 其它

复制集部署问题记录

2016-12-09 17:26 148 查看
1、“not authorized on admin to execute command{}”
出现下列此种报错,可能是开启了keyfile或者auth认证参数,而我们此时又没有添加用户,所以会报错;
解决:可以先关闭keifile或者auth认证参数,之后新建用户,并db.auth()认证用户,之后再重新开启认证参数(记得重启mongod实例服务)

说明:在搭建完成复制集之前,mongodb.cnf配置文件中需要先屏蔽掉keyfile参数,否则在执行rs.initiate(config_rs1)时会
报认证错误,使用show dbs等命令都无法使用(可以在配置完成之后再打开keyfile参数)



2、“Attempting to initiate a replica set with name XXX,but command liner reports XXX;rejecting”
mongodb.cnf配置文件中的replSet参数值已经要与复制集成员配置config_rs1中的复制集名称一致(必须一致),
要不然会如下错误:



3、“WARNING:/sys/kernel/mm/transparent_hugepage/enabled is 'always’”
屏蔽keyfile参数再启动mongod进程后,使用mongo连接DB,可能会报如下错误:



解决办法:
在root账户下执行如下命令,之后重启mongod服务

 echo never > /sys/kernel/mm/transparent_hugepage/enabled

 echo never >/sys/kernel/mm/transparent_hugepage/defrag

 
注:永久关闭,就将上面的命令写入到/etc/rc.local文件中

4、搭建完成之后,使用db.createUser()新建一个超级管理员账号root,然后关闭所有节点,等到开启keyfile参数之后再重启mongod服务,
此时登录进mongo shell中,进行认证授权db.auth("root","passwd"),(注:此时必须useadmin到admin库,否则会报如下错误):



5、mongod进程启动失败,提示“Permission denied”权限问题

secondary节点再添加完keyfile参数后无法启动,报错如下:



提示无权限,后在root账号下启动mongod服务便可以启动
出现这种现象的原因是在dbpath路径下,某些数据库相关文件是root账号权限所属,所以需要将这些文档chown成mongo账号权限,再启动mongod服务即可成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: