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()
相关推荐
小涂1 天前
在Linux(deepin-community-25)下安装MongoDB
linux·运维·mongodb
武子康2 天前
Java-163 MongoDB 生产安全加固实战:10 分钟完成认证、最小权限、角色详解
java·数据库·分布式·mongodb·性能优化·系统架构·nosql
金仓拾光集2 天前
国产化转型实战:制造业供应链物流系统从MongoDB至金仓数据库迁移全指南
数据库·mongodb·数据库平替用金仓·金仓数据库
金仓拾光集2 天前
金仓替代MongoDB:互联网医院聊天脱敏实战
数据库·mongodb·kingbase·kingbasees·数据库平替用金仓·金仓数据库
武子康2 天前
Java-164 MongoDB 认证与权限实战:单实例与分片集群 整体认证配置实战 最小化授权/错误速查/回滚剧本
java·数据库·分布式·mongodb·性能优化·系统架构·nosql
金仓拾光集2 天前
《MongoDB 重建索引要锁库?金仓却能边跑边修》
数据库·mongodb·kingbase·kingbasees·数据库平替用金仓·金仓数据库
金仓拾光集2 天前
金仓数据库平替MongoDB:医共体数据互通的高效安全之道
数据库·安全·mongodb·kingbase·kingbasees·数据库平替用金仓·金仓数据库
金仓拾光集3 天前
金仓替代MongoDB:安全与性能协同提升——社交用户画像系统的国产化实践
数据库·安全·mongodb·kingbase·kingbasees·数据库平替用金仓·金仓数据库
FinTech老王3 天前
国产数据库替换MongoDB实战:浙江人民医院电子病历系统国产化升级案例
数据库·mongodb
金仓拾光集3 天前
「安全升级 + 零代码平替」金仓数据库如何实现MongoDB社交动态发布系统的无缝迁移?
数据库·安全·mongodb·kingbase·kingbasees·数据库平替用金仓·金仓数据库