我有一个 3 节点的 mongodb 副本集,它使用我试图更改为使用新的 Yaml 语法的旧语法(非 Yaml)语法
旧语法
auth = true
bind_ip = 0.0.0.0
dbpath = /var/lib/mongodb
fork = false
keyFile = /etc/mongod.key
logappend = true
logpath = /var/log/mongodb/mongod.log
nojournal = false
port = 27017
replSet = rs0
rest = false
smallfiles = false
文件
net:
bindIp: 0.0.0.0
port: 27017
http:
enabled: true
RESTInterfaceEnabled: true
storage:
dbPath: /var/lib/mongodb
mmapv1:
smallFiles: false
journal:
enabled: false
processManagement:
fork: false
security:
keyFile: /etc/mongod.key
authorization: enabled
systemLog:
logAppend: true
path: /var/log/mongodb/mongod.log
replication:
replSetName: "rs0"
我已经对主服务器进行了更改,但它不再正常启动。我在日志中收到以下错误消息
SyncSourceFeedback 错误发送更新到:27017:CallbackCanceled:Reporter 不再有效
我对错误进行了搜索,但找不到解决方案。副本集正在运行 mongo v3.4.9
我还尝试了以下方法:
- 使用相同的配置设置每个服务器
- 停止所有成员的服务并一次启动一个。
这些尝试没有奏效
看了几天并测试了不同的东西后,我发现缺少配置值
我通过运行以下命令发现了这一点
而不是执行基本的服务启动命令
它显示以下错误:
排除故障时的其他一些事情。确保维护 mongo 文件和文件夹权限。我在排除故障时正在删除日志和配置文件,但没有意识到它不允许引擎启动几次。我运行了以下命令来更正权限
我还完成了从 replicaSet 中删除其中一个辅助节点的过程
和
然后直接登录到独立的旧辅助数据库,确保我可以独立访问数据库。
然后我在配置更改期间重新添加了系统
这是最终的配置文件:
我希望这可以帮助别人