Mongo启动流星时出错

时间:2014-01-22 01:22:57

标签: node.js mongodb ubuntu meteor

我正在使用全新的Linux安装。我正在尝试安装Meteor。使用Ubuntu 12.04,Centos和Ubuntu 13.04。我安装了Node.js,Meteor和Meteorite。

错误:

Unexpected mongo exit code 100. Restarting.

Unexpected mongo exit code 100. Restarting.

Unexpected mongo exit code 100. Restarting.

Can't start mongod

MongoDB had an unspecified uncaught exception.
This can be caused by MongoDB being unable to write to a local database.
Check that you have permissions to write to .meteor/local. MongoDB does
not support filesystems like NFS that do not allow file locking.

我试过了:

正在删除.meteor/local/db/mongod.lock 我还尝试使用chmod更改整个项目的权限。

您推荐任何Ubuntu发行版吗?

提前致谢。

13 个答案:

答案 0 :(得分:29)

我之前(在流星更新或异常流星终止后)遇到过这个问题,这些解决方案以前对我有用。

  1. 重新启动您的计算机。
  2. 删除文件.meteor/local/db/mongod.lock并再次运行meteor
  3. 执行meteor reset并重新开始,但此命令将清除您的数据库。
  4. 希望它有所帮助。

答案 1 :(得分:16)

一段时间取决于您的区域设置设置。

流星重置和删除mongod.lock对我的情况没有帮助。

我已经通过运行

修复了它
export LC_ALL=C

您可以将此行添加到

sudo vim /usr/local/bin/meteor

答案 2 :(得分:5)

我所要做的只是在终端上运行“killall mongod”。之后它再次起作用。我相信它可能已经清除了部分数据库。

答案 3 :(得分:3)

对我来说,这些建议的组合得以实现。已经获得2票的The answer!和另一页的this one

sudo vim /usr/local/bin/meteor
export LC_ALL="en_US.UTF-8"

然后通过发出以下命令确保您的mongodb正在运行哪个端口:

meteor mongo

你会得到这样的回复:

connecting to: 127.0.0.1:3001/meteor

现在您知道配置mongo的端口,将以下内容添加到我们编辑的同一文件中:

export MONGO_URL=mongodb://127.0.0.1:3001/meteor

现在你很高兴。当然"流星重置"但如果您不想丢失数据,请坚持使用这两个导出行。

答案 4 :(得分:2)

我发现设置MONGO_URL有助于避免问题

export MONGO_URL=mongodb://localhost:27017/your_db

答案 5 :(得分:2)

如果您在Vagrant / VirtualBox中运行Ubuntu时遇到此问题,那么问题就来自同步的vagrant文​​件夹。 解决方法是初始化主目录中的.meteor目录并将其挂载到同步文件夹中。假设您的meteor应用程序名为MyApp,而/ vagrant是同步文件夹,请按照以下步骤操作:

cd ~  
meteor create MyApp  
cd MyApp  
meteor  
cd /vagrant/MyApp  
sudo mount --bind ~/MyApp/.meteor/ .meteor  
meteor  

答案 6 :(得分:1)

我有类似的问题。这是因为我的项目目录是我的Dropbox的一部分,并且.meteor / local / db目录中存在一些冲突的文件。删除这些解决了这个问题。

答案 7 :(得分:1)

当我的磁盘空间不足时遇到同样的问题。

释放磁盘中的一些空间为我解决了这个问题。

答案 8 :(得分:1)

当我在Windows 7主机上的VMWare,ubuntu 14.04 guest中运行meteor时遇到了这个问题。问题是我在共享目录中运行meteor / mongo。当我使用非共享目录(〜/ meteor / project)时,问题就消失了。

答案 9 :(得分:1)

按照@Oscar进一步提到的步骤应该排除你。 但是在我的情况下,meteor reset无法正常工作,请告诉我:

reset: Meteor is running.

This command does not work while Meteor is running your application. Exit the running Meteor development server.

我跟踪了这​​个过程,如下所示:

$ ps aux | grep meteor --color=auto

给了我这个信息:

$ myUser            71981   0.5  0.0  2849208   3644   ??  S    Mon02pm   4:25.27 /Users/myUser/.meteor/packages/meteor-tool/.1.1.10.1b51q9m++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/mongodb/bin/mongod --bind_ip 127.0.0.1 --smallfiles --port 2001 --dbpath /Users/jgt/Documents/Projects/todos/.meteor/local/db --oplogSize 8 --replSet meteor

正如你在Mac上看到的那样,但是在任何基于Unix的操作系统上都能正常工作。 那么你只需要通过它的id杀死进程,就像这样:

$ kill -9 71981

最后再次运行meteor reset

那就是它,现在让它运转起来。希望它有所帮助。

答案 10 :(得分:0)

一种选择是等到您的应用程序在临时服务器或生产服务器上,然后在Android Studio或BlueStacks提供的Android模拟器上对其进行测试。

答案 11 :(得分:0)

我在Windows上的Ubuntu的WSL上遇到此问题。对我而言唯一有效的解决方案是使用mLabs创建一个远程mongodb并运行以下命令

export MONGO_URL=mongodb://username:password@randomurl.mlab.com:port#/project

答案 12 :(得分:-1)

对于Windows 10,我将所有Meteor项目都移动到驱动器C.到目前为止工作。