Mongodb带用户验证的Replica Set配置

Replica Set配置好之后,发现启用auth选项之后就不能同步了,应该是身份验证的部分漏掉了哪些步骤。

后来发现是少了keyFile的配置,于是就生成一个。

keyFile其实没有什么神秘的,只要

  1. 是base64字符集中的字符,
  2. 长度在6~1024之间就可以了,
  3. 空白字符会被MongoDB删除掉,
  4. 每一个节点都要使用相同的keyFile文件
  5. linux环境需要修改keyFile权限(chmod 600 mongodb-keyfile)。

由于MongoDB官方文档的示例是使用openssl生成的,base64编码的字符串,可能会给人造成误解,keyFile一定要使用openssl生成,一定要使用Base64编码,其实不是这样的,

可以不用openssl生成,不需要Base64编码,只要长度在6~1024之间,Base64字符集中的字符就OK,用您最方便的工具整一个或者随便输入一些字符都是可以的。

看一下官方的原文(附后)就很容易发现这一点。

Base64字符集如下:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

修改后的配置信息如下:

1 replSet = rs01
2 auth = true
3 port = 27017
4 bind_ip = localhost
5 journal = true
6 dbpath = e:datadb
7 logpath = e:datalogmongo.log
8 keyFile = D:mongodbkey

参考:

1. Generate a Key File: http://docs.mongodb.org/manual/tutorial/generate-key-file/

2. openssl下载(Windows):http://www.openssl.org/related/binaries.html

原文地址:https://www.cnblogs.com/m1234/p/4250472.html