You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[root@a6a766e6204a ~]# mongod -f mongodb/mongo.conf
about to fork child process, waiting until server is ready for connections.
forked process: 1289
child process started successfully, parent exiting
2017-06-30T07:01:28.950+0000 I CONTROL [main] ***** SERVER RESTARTED *****
2017-06-30T07:01:28.954+0000 I ACCESS [main] permissions on /root/mongodb/keyfile/keyfile are too open
并且把这份keyfile同步到其他两个节点的 ~/mongodb/keyfile/ 文件夹中;
2、关闭副本集:分别关闭每个节点的mongod
[root@c43bfab6f744 ~]# mongo --port 27018
replSet:PRIMARY> use admin
replSet:PRIMARY> db.shutdownServer()
3、修改每个节点的配置文件mongo.conf中的下面项:
[root@c43bfab6f744 ~]# vi ~/mongodb/mongo.conf
...
...
#是否以安装认证方式运行
auth=true
#KeyFile鉴权文件:改为实际路径
keyFile=/root/mongodb/keyfile/keyfile
操作系统: CentOS 6.9
安装软件包:mongodb-linux-x86_64-rhel62-3.6.2.tgz
MongoDB版本:3.6
安装流程思路
目前最小节点是3个,本文档暂且按照3个节点来配置:A、B、C
1、在集群每个节点上安装一份MongoDB;
2、配置副本集;
3、配置副本集的用户、密码;
4、配置副本集的KeyFile安全鉴权;
5、配置开机自启动;
每个节点IP:
步骤1: 每个节点安装MongoDB
1、下载MongoDB安装包:mongodb-linux-x86_64-3.4.1.tgz
2、解压安装包, 创建目录,拷贝配置文件:
创建完成后,目录的结构:
mongodb
├── bin #可执行文件
├── data #存放数据库文件
├── keyfile #存放Keyfile
├── logs #存放系统日志
├── mongo.conf #配置文件
3、添加到环境变量
4、创建 mongo.conf 配置项,包括端口、路径等, 例如,配置后的文件:
谈到配置文件,MongoDB有下面两种配置:
下面的配置与上面INI形式配置是一样的:
5、分别启动每个节点:A、B、C节点
步骤2: 组建副本集
1、使用mongo 客户端 连接任意节点(假设 目前创建的节点有 A、B、C 三台)
连接成功后,开始配置副本集:
步骤3:创建帐户密码
副本集搭建成功后,需要给整个副本集创建帐户、密码
1、在主节点上,用客户端连接,创建用户权限(主节点,可以用 rs.status() 查看)
这样,就创建数据库:mytest, 数据库用户:mytest / mytest, 生产部署的时候,改成对应的数据库名、用户名
可以通过连接验证下:
步骤4:创建副本集认证key文件
1、创建key文件: 注意,三个节点必须要用同一份keyfile,在一台机器生成,拷贝到另外两台,并且修改成 600 的文件属性
备注:keyfile的属性必须更改,否则会报错:
并且把这份keyfile同步到其他两个节点的 ~/mongodb/keyfile/ 文件夹中;
2、关闭副本集:分别关闭每个节点的mongod
3、修改每个节点的配置文件mongo.conf中的下面项:
4、重新启动副本集
步骤5:设置MongoDB开机自启动
步骤6: 设置MongoDB自动备份
注意:
%
号需要专一成\%
附录
1、创建数据库的用户角色:
role角色
角色说明
2、Java客户端连接配置
Spring XML配置
Spring Boot配置
The text was updated successfully, but these errors were encountered: