Replica Set配置好之后,发现启用auth选项之后就不能同步了,应该是身份验证的部分漏掉了哪些步骤。
后来发现是少了keyFile的配置,于是就生成一个。
keyFile其实没有什么神秘的,只要
- 是base64字符集中的字符,
- 长度在6~1024之间就可以了,
- 空白字符会被MongoDB删除掉,
- 每一个节点都要使用相同的keyFile文件,
- 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:\data\db 7 logpath = e:\data\log\mongo.log 8 keyFile = D:\mongodb\key
参考:
1. Generate a Key File: http://docs.mongodb.org/manual/tutorial/generate-key-file/
2. openssl下载(Windows):http://www.openssl.org/related/binaries.html
时间: 2024-10-03 23:02:27