开始 MongoDB 个副本集

Starting MongoDB Replica Set

所以,我正在制作一个需要使用 MongoDB t运行saction 的应用程序。但是 Mongoose 文档告诉我“MongoDB 目前只支持副本集上的 t运行 操作,而不是独立服务器。”所以我想我基本上需要将我的独立 MongoDB 实例切换到副本集(无论那意味着什么)。

MongoDB 文档为我提供了如何通过几个步骤执行此操作的说明:

  1. 关闭独立 Mongo数据库实例
  2. 使用 --replSet 选项重新启动实例
mongod --port 27017 --dbpath /var/lib/mongodb --replSet rs0 --bind_ip localhost
  1. 连接 Mongo Shell
  2. 在Shell
  3. 内调用rs.initiate()

我卡在了第 2 步。据我所知,当你想开始使用 MongoDB 时,你必须先启动它的守护进程,使用 sudo systemctl start mongod,然后再开始使用它通过连接您的应用程序。但是那一步告诉我使用 mongod 命令来启动 Mongod 守护程序,而不是 systemctl。我尝试了该命令但出现以下错误:

DBException in initAndListen, terminating","attr":{"error":"IllegalOperation: Attempted to create a lock file on a read-only directory: /var/lib/mongodb"}}

起初,我认为这是某种特权问题,所以我用 sudo 再次 运行 它,但最终 破坏了我的整个数据库 并阻止我以“正常方式”启动 Mongo 数据库,给我一些我不记得的错误。

我刚刚重新安装了整个 MongoDB 以使其恢复正常工作。现在我和昨天一样,无法转换为副本集,只是现在我的整个数据库都不见了。我该怎么做才能启用它?

当运行将mongod作为服务时,使用/etc/monogd.conf设置配置。请注意,此文件的位置或名称可能已在您系统的 mongod.service 文件中更改。

请参阅 replication options 了解如何在文件中进行设置。