yum安装MongoDB实例配置为副本集问题

Caused by: com.mongodb.MongoQueryException: Command failed with error 20 (IllegalOperation): 'Transaction numbers are only allowed on a replica set member or mongos' on server 47.1.166.2:27017. The full response is {"ok": 0.0, "errmsg": "Transaction numbers are only allowed on a replica set member or mongos", "code": 20, "codeName": "IllegalOperation"}

遇到 MongoQueryException: Command failed with error 20 (IllegalOperation) 错误,表明您正在尝试在一个非副本集(standalone)MongoDB 实例上执行事务,而事务只能在副本集或 MongoDB Sharded 集群(mongos)上使用。

由于您是通过 yum 安装 MongoDB,下面是将您的 MongoDB 实例配置为副本集的步骤:

将 MongoDB 配置为副本集

  1. 停止 MongoDB 服务

    首先,您需要停止当前的 MongoDB 服务。可以使用以下命令:

    bash

    Copy

    复制代码
    sudo systemctl stop mongod
  2. 编辑配置文件

    找到您的 MongoDB 配置文件,通常位于 /etc/mongod.conf。使用文本编辑器打开该文件:

    bash

    Copy

    复制代码
    sudo vi /etc/mongod.conf

    在配置文件中,您需要添加或修改以下行以启用副本集:

    yaml

    Copy

    复制代码
    replication:
      replSetName: "rs0"

    确保您在文件中添加了 replication 部分,且缩进正确。

  3. 重启 MongoDB 服务

    保存并关闭配置文件后,重新启动 MongoDB 服务:

    bash

    Copy

    复制代码
    sudo systemctl start mongod
  4. 初始化副本集

    使用 mongo shell 连接到 MongoDB 实例,并初始化副本集:

    bash

    Copy

    复制代码
    mongo

    然后在 mongo shell 中运行:

    javascript

    Copy

    复制代码
    rs.initiate()

    这将初始化您的副本集。

  5. 检查副本集状态

    您可以使用以下命令检查副本集的状态:

    javascript

    Copy

    复制代码
    rs.status()
相关推荐
全栈前端老曹11 小时前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集
范纹杉想快点毕业1 天前
状态机设计与嵌入式系统开发完整指南从面向过程到面向对象,从理论到实践的全面解析
linux·服务器·数据库·c++·算法·mongodb·mfc
萧曵 丶1 天前
MongoDB 核心原理 + 高频面试题
数据库·mongodb
青树寒鸦1 天前
wsl的docker备份mongo和迁移
运维·mongodb·docker·容器
范纹杉想快点毕业1 天前
状态机设计模式与嵌入式系统开发完整指南
java·开发语言·网络·数据库·mongodb·设计模式·架构
李钢蛋2 天前
使用 SSH 隧道安全连接远程 MongoDB
安全·mongodb·ssh
·云扬·2 天前
MongoDB高可用方案详解:副本集与分片集群
数据库·mongodb
云边有个稻草人3 天前
金仓 VS MongoDB:国产数据库凭什么成为MongoDB平替首选?
数据库·mongodb·国产数据库·金仓·kingbasees sql
fen_fen3 天前
Docker MongoDB 配置 0.0.0.0 监听(外部可访问)操作文档
mongodb·docker·eureka
FreeBuf_3 天前
黑客攻击MongoDB实例删除数据库并植入勒索信息
数据库·mongodb