mongodb 尝试使用homebrew和run-rs在mac上本地运行副本集

y4ekin9u  于 2022-11-22  发布在  Go
关注(0)|答案(1)|浏览(191)

我有mongo设置与自制。

$ brew services start mongodb-community
$ mongosh

我可以在蒙戈罗盘上看到我的数据。

我想在副本集中运行此数据库。但我不知道如何运行。
我试着用run-rs软件包,但是没有用。
我安装了软件包。

$ npm install run-rs -g

然后我运行run-rs,,但它失败了:

$ run-rs --mongod
Purging database...
Running 'mongod' [ 27017, 27018, 27019 ]
Starting replica set...
Error: failed to start mongod with options [
  '--port=27017',
  '--dbpath=/Users/projectpath/backend/data/27017',
  '--bind_ip=localhost',
  '--replSet=rs'
]

于是我停止了MongoDB。

$ brew services stop mongodb-community

我再次运行run-rs

$ run-rs --mongod
Purging database...
Running 'mongod' [ 27017, 27018, 27019 ]
Starting replica set...
Started replica set on "mongodb://localhost:27017,localhost:27018,localhost:27019?replicaSet=rs"
Connected to oplog
(node:28395) [MONGODB DRIVER] DeprecationWarning: collection.find option [oplogReplay] is deprecated and will be removed in a later version.
(Use `node --trace-deprecation ...` to show where the warning was created)

但是这在我的项目目录中创建了一个data文件夹,里面有很多文件。我不想在我的目录中有一堆项目文件。这些文件是预期的吗?如果是,这些文件应该放在哪里?我如何将它们放入正确的目录?为什么它的行为不像我的其他mongo安装程序?
现在我以前在mongo compass中拥有的所有DB都消失了。如果我杀死所有mongo进程,我可以回到它们

$ ps wuax | grep mongo

$ kill (pid number)

和运行:

$ brew services start mongodb-community

但是我怎样才能让我的常规mongo社区使用副本集呢?为什么当我运行run-rs时我的mongo DB不见了呢?为什么run-rs在我的项目目录下放了很多文件呢?
我是不是忘了该怎么做了?

更新

我尝试添加自制路径。

$ run-rs 5.0.6 --dbpath '/opt/homebrew/var/mongodb'

数据文件夹现在没有添加到我的项目中。但是我在第一张图片中显示的旧数据库已经不在Mongo Compass中了。现在当我切换到brew services start mongodb-community时,我所有的dev数据库似乎都被删除了。

gcuhipw9

gcuhipw91#

看起来一旦你让run-rs工作,它会清除你的数据库数据,所以你不能用你的旧数据库数据运行一个副本集,而不把它保存在某个地方并复制回来。看起来你还必须关闭你的自制mongo。我真的不知道我在说什么,但这就是我如何让它工作的。
我设置了run-rs,并且必须重新设定我的开发数据库。
以下是我设置本地副本集的方法:
1.已关闭mongo-community

$ brew services stop mongodb-community

1.使用我的data directory path'/opt/homebrew/var/mongodb')和我的mongo版本(5.0.6)安装并运行run-rs。当我运行run-rs --mongod而不是run-rs 5.0.6时,Mongo Compass给了我一个错误,尽管两者的版本都是5.0.6。

$ npm install run-rs -g
$ run-rs 5.0.6 --dbpath '/opt/homebrew/var/mongodb'

然后我运行种子文件并在uri处填充一个新的数据库:mongodb://127.0.0.1:27017/wtdev-local?replicaSet=rs
确保将replicaSet=rs添加到URI。

注意事项

我总是遇到一些问题,比如以前错误地运行run-rs或者其他mongo示例,然后在旧的mongo还在运行的时候尝试再次运行mongo。我的终端会告诉我mongo已经在27017端口上运行了。每当这种情况发生时,我都会找到PID并杀死任何mongo的PID。

$ ps wuax | grep mongo

$ kill (pid number)

相关问题