Windows 下MongoDB复制集配置
1.下载服务。https://www.mongodb.com/ 点击products 下拉第二列MongoDB server 选择 4.0.6
2.下载下来后 有限管理员运行 一路安装,可以不用安装客户端图解
3.安装完成后只有一个bin文件。根据以下图片创建各个文件夹。
data 下面不用创建任何文件
conf 地下创建 mongo.conf
mongo.conf 文件内容:
# mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # Where and how to store data. storage: dbPath: E:\xxx\MongoDB\shard01\s1\data journal: enabled: true # engine: # mmapv1: # wiredTiger: # where to write logging data. systemLog: destination: file logAppend: true path: E:\xxx\MongoDB\shard01\s1\log\mongo.log # network interfaces net: port: 28021 bindIp: 192.168.0.23 #processManagement: #security: #authorization: enabled #keyFile: E:\xx\MongoDB\shard01\s1\keyfile\mongodb.keyfile #operationProfiling: replication: oplogSizeMB: 2048 replSetName: sh1 #sharding: #clusterRole: shardsvr ## Enterprise-Only Options: #auditLog: #snmp:
log下面创建 mongo.log 文件
keyfile 下面创建 mongodb.keyfile 文件,为了复制集的用户验证。
安装完成后将每个文件复制成3个放到一起将conf 中的路径进行分别配置 port 端口号要改。
4.运行win+r 选择管理员启动cmd
5.开始注册服务:
安装成服务后可以到服务中查看。以此注册s2,s3服务。
6.注册完成后,将所有服务启动
7.重新打开cmd 链接到其中的一个mongodb
8.在重新开启2个cmd将其他2个也安装这样链接上
9.进入其中一个进行初始化配置
config = {_id: 'sh1', members: [{_id: 0, host: '192.168.0.23:28021'},{_id: 1, host: '192.168.0.23:28022'},{_id: 1, host: '192.168.0.23:28023',"arbiterOnly":true}] }
sh1 是我们配置文件中的复制集名称,arbiterOnly 是否为仲裁节点
rs.initiate(config)
等一下,按enter 就会发现
primary 为主库的意思,seconder为从库的意思。
==创建用户名
在主库上运行
use admin
db.createUser( { user: "root", pwd: "root", roles: [ { role: "root", db: "admin" } ] } )
找到主库的配置文件 conf 开启一下
关于这个keyfile linux 上说的是
意思大概是将随机一批数字然后base64编码有666个字符的样子,不是很清楚。我就是在网上随机了一批数字然后base64编码后生成的数据放到keyfile中。
conf 配置好后,将服务重新启动,然后客户单重新练级后 如果查看等报错的话就会提示需要权限,然后转到use admin下db.auth("admin","admin") 返回1就是 成功。然后登陆从节点进行登陆看一下是否需要提示。
如果都成功,可以写入数据看一下复制集中是否有数据。
写的有点乱。~~~~~~~~~~~~~~~~~~~~~~尴尬