我需要帮助在同一台计算机上设置两个流星实例(此计算机用作服务器)。每个实例应该运行相同的代码(在构建流星应用程序之后)并使用不同的mongo数据库。
我已经厌恶并试图找到一个教程指南来做这个,但我还没有找到任何东西。我怎么能这样做?
感谢您的帮助!
答案 0 :(得分:1)
你可以这么做,并尝试通过docker容器连接到几个mongodb实例,或者只是简单的方法,并将你的每个meteor实例与你的mongodb中的a single database相关联。
我知道命名很混乱,因为你可能会想到#34;但是mongodb是我的数据库!?"。但想想这个:
mongodb是您的数据库进程,对于每个应用程序,您可以使mongodb关联数据库。
你可以这样做:
<强> 1。打开你的生产数据库的mongo shell(不是你的本地流星数据库)
mongo
<强> 2。在mongo shell中,为您的两个应用创建数据库and a database user
use app1db
app1db.createUser({
user: "app1dbuser",
pwd: "app1dbpassword",
roles: [{ role: "readWrite", db: "app1db" }]
});
use app2db
app2db.createUser({ user: "app2dbuser",
pwd: "app2dbpassword",
roles: [{ role: "readWrite", db: "app2db" }]
});
第3。使用您的数据库启动流星应用程序实例(假设您的mongodb使用本地IP和defualt端口)
APP1
MONGO_URL="mongodb://app1dbuser:app1dbpassword@127.0.0.1:27017/app1db"
APP2
MONGO_URL="mongodb://app2dbuser:app2dbpassword@127.0.0.1:27017/app2db"
应用程序创建的数据存储在每个应用程序的每个数据库中。 App1无法访问app2的数据库,反之亦然。
我希望这有助于实现您的目标。
答案 1 :(得分:0)
您可以在不同的端口上运行这两个实例
你这样做:
对于第一个实例meteor --port 3000
第二个实例meteor --port 4000
他们将使用相同的mongo db。
答案 2 :(得分:0)
在一个终端中,在端口3000上启动meteor,连接到名为db1
的数据库export MONGO_URL=mongodb://localhost:27017/db1
meteor --port 3000
在另一个终端中,在端口4000上启动meteor,连接到名为db2
的数据库export MONGO_URL=mongodb://localhost:27017/db2
meteor --port 4000