开始 MongoDB 个副本集
Starting MongoDB Replica Set
所以,我正在制作一个需要使用 MongoDB t运行saction 的应用程序。但是 Mongoose 文档告诉我“MongoDB 目前只支持副本集上的 t运行 操作,而不是独立服务器。”所以我想我基本上需要将我的独立 MongoDB 实例切换到副本集(无论那意味着什么)。
MongoDB 文档为我提供了如何通过几个步骤执行此操作的说明:
- 关闭独立 Mongo数据库实例
- 使用
--replSet
选项重新启动实例
mongod --port 27017 --dbpath /var/lib/mongodb --replSet rs0 --bind_ip localhost
- 连接 Mongo Shell
- 在Shell
内调用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 了解如何在文件中进行设置。
所以,我正在制作一个需要使用 MongoDB t运行saction 的应用程序。但是 Mongoose 文档告诉我“MongoDB 目前只支持副本集上的 t运行 操作,而不是独立服务器。”所以我想我基本上需要将我的独立 MongoDB 实例切换到副本集(无论那意味着什么)。
MongoDB 文档为我提供了如何通过几个步骤执行此操作的说明:
- 关闭独立 Mongo数据库实例
- 使用
--replSet
选项重新启动实例
mongod --port 27017 --dbpath /var/lib/mongodb --replSet rs0 --bind_ip localhost
- 连接 Mongo Shell
- 在Shell 内调用
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 了解如何在文件中进行设置。