1、生成密钥文件
openssl rand -base64 756 > /data/mongodb/testKeyFile.file
chmod 400 /data/mongodb/keyfile/testKeyFile.file
2、将密钥复制到集群中的每台机器的指定位置
如:scp /data/mongodb/testKeyFile.file root@192.168.5.176:/data/mongodb
3、预先创建好一个管理员账号和密码然后将集群中的所有mongod和mongos全部关闭
连接任意一台机器的mongos
mongo --port 20000
添加用户
use admin //注意一定要使用admin数据库
db.createUser(
{
user:"root",
pwd:"123456",
roles:[{role:"root",db:"admin"}]
}
)
然后依次连接到每一台机器上执行。
killall mongod
killall mongos
4、使用访问控制强制重新启动复制集的每个成员
4.1依次在每台机器上的mongod(注意是所有的mongod不是mongos)的配置文件中加入下面一段配置。如我在10.12.40.83上的config server,shard1,shard2,shard3都加入下面的配置文件
security:
keyFile: /data/mongodb/testKeyFile.file
authorization: enabled
或者
keyFile= /data/mongodb/testKeyFile.file
4.2依次在每台机器上的mongos配置文件中加入下面一段配置。如我在10.12.40.83上的mongos配置文件中加入上面的一段配置
security:
keyFile: /data/mongodb/testKeyFile.file
或者
keyFile= /data/mongodb/testKeyFile.file
4.3重启每个mongo示例。因为我的认证配置在了配置文件里面,所以启动命令不需要再加认证的参数 (例如--auth等)
mongod -f /data/mongodb/config/configs.config
mongod -f /data/mongodb/config/shard1.config
mongod -f /data/mongodb/config/shard2.config
mongod -f /data/mongodb/config/shard3.config
mongos -f /data/mongodb/config/mongos.config
依次重启三台机器的mongod和mongos实例
5、连接mongodb集群
如果用mongo sell脚本连接
mongo --port 20000
use admin
db.auth("root","123456")
如果返回1表示连接成功,然后你就可以访问自己的数据库啦~!如use testDB
如果使用mongodb连接工具。我用的是Robo3T。在连接的时候选择使用authentization
————————————————
版权声明:本文为CSDN博主「大伟爱自由」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/uncle_david/article/details/78713551