流星:意外的mongo退出代码100

时间:2013-03-25 08:20:47

标签: mongodb permissions centos meteor samba

我刚刚将Meteor版本0.5.9(45fef52095)安装到我的CentOS版本6.3(最终版)服务器(Linux版本2.6.32-279.19.1.el6.i686(mockbuild@c6b8.bsys.dev.centos.org) )(gcc版本4.4.6 20120305(红帽4.4.6-4)(GCC))#1 SMP Wed Dec 19 04:30:58 UTC 2012)

我有一个samba共享到一个在Sache用户下挂载为/ mnt / apshared的Windows SBS服务器。我在这个名为'webmeteor'的内部创建了一个目录。我在'webmeteor'目录中创建了一个名为'myapp'的应用程序,所以我的目录是这样的:/ mnt / apshared / webmeteor / myapp。

我以root身份登录。当我尝试使用meteor命令运行应用程序时,我收到以下错误消息:

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.
Check to make sure that MongoDB is able to write to its database directory.

我的第一个调用点是这个StackOverflow问题:Creating a new meteor.js file and get error 100, MongoDB not able to write - 然而,遵循这些建议(sudo'ing meteor命令,并检查我有70GB免费的磁盘空间)没有用。我很确定这些问题与许可有关。

我已尝试递归chown root:root(因为我以root身份登录),而chmod也递归到777,但无效。

我问你,我接下来应该尝试一下,让我的Meteor应用程序启动?

提前致谢。

26 个答案:

答案 0 :(得分:88)

使用meteor reset删除数据库中的所有数据。如果您对此感到担心,请导航到项目文件夹。

cd /path/to/my/project

您需要删除mongodb.lock文件。

rm .meteor/local/db/mongodb.lock

现在您可以使用命令

运行Meteor

meteor

答案 1 :(得分:40)

删除此文件和文件夹对我有用:

rm -rf .meteor/local/db/mongod.lock .meteor/local/db/journal/

答案 2 :(得分:16)

最后通过运行导出LC_ALL=C修复了我的问题。通过此帖中建议的调试步骤发现错误:https://stackoverflow.com/a/15752736/1820510

答案 3 :(得分:14)

通过从不在mount中的目录中运行meteor,可以找到临时解决方案。 Mongodb似乎并不太友好地分享,所以你需要设置rsync来定期将你的共享文件复制到运行meteor的目录。

来源:Problems to run examples in Meteor

答案 4 :(得分:10)

正如其他地方所建议的那样,在OS X上运行meteor reset为我解决了问题。

警告:meteor reset会删除本地数据库中的所有内容。

答案 5 :(得分:5)

这对我有所帮助。

  1. 我删除了.meteor / local / db / mongod.lock
  2. 我杀死了mongod进程。你可以使用“ps -ef | grep mongo”
  3. 找到它

答案 6 :(得分:5)

确保该分区上有足够的可用空间。如果没有,你会得到这个错误。

答案 7 :(得分:3)

我在Vagrant下运行meteor并遇到了这个问题,在找到这个帖子之前我从/var/lib/mongodb删除了我的MongoDB文件,因为那里还有一个.lock,这可能会也可能不会已被要求,但值得一看的是MongoDB可能位于.meteor文件夹旁边的其他区域。

答案 8 :(得分:2)

每次重新启动流星时都会发生这个错误

rm .meteor/local/db/mongod.lock

对我不起作用(我正在使用cloud9在线IDE)

我现在做

rm .meteor/local/db/mongod.lock .meteor/local/db/local.*

一切都恢复正常没有删除我的数据库

答案 9 :(得分:2)

我在Windows 8.1 x64上遇到了同样的问题:'意外的mongo退出代码100.重新启动。'。 并且'meteor reset'或'delete mongod.lock'没有解决它。 要在启动 mongod 时显示错误详细信息,我在run-mongo.js文件中添加了 proc.stdout.on 函数:

// Let's not actually start a process if we yielded (eg during
// findMongoAndKillItDead) and we decided to stop in the middle (eg, because
// we're in multiple mode and another process exited).
if (stopped) return;

proc = spawnMongod(mongod_path, port, dbPath, replSetName);

// added this 3 lines just to debug 'Unexpected mongo exit code 100. Restarting.'
proc.stdout.on('data', function (data) {
  console.log('stdout: ' + data);
});

然后我得到了明确的错误:

*********************************************************************
ERROR: dbpath (C:\Users\Pierre-André\Desktop\Pal\Meteor\simple-todos\.meteor\local\db) does not exist.
Create this directory or give existing directory in --dbpath.
See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************

该错误表示db目录不存在。但是,它存在。 问题是我在路径中有一个特殊的角色(以我的名义重音é)。我将我的meteor项目文件夹移动到磁盘中另一个没有重音路径的位置,它运行正常。

希望这会有所帮助。

run-mongo.js 文件位于我的电脑:C:\ Users \ Pierre-André\ AppData \ Local \ .meteor \ packages \ meteor-tool \ 1.1.10 \ MT-os.windows.x86_32 \工具\跑者

解决问题后不要忘记删除3行,或者每次加载项目时都会有很多控制台日志。

答案 10 :(得分:1)

如果您收到类似

的通知
Local folder has run out of space

尝试去

cd .meteor/local/bundler-cache/

并删除该目录中的所有内容。它是一个缓存所以它不应该影响太多。它有时似乎无法控制地增长。

修改

结合所有其他答案尝试

rm -rf .meteor/local/db/mongod.lock .meteor/local/db/local.* .meteor/local/db/journal .meteor/local/bundler-cache/linker/

如果仍然无法正常工作,则可能需要释放磁盘空间。通过检查

来这样做
free -m

或查看您的inode以及通过

使用了多少空间
df -h

答案 11 :(得分:1)

解决!在我的情况下,deleting meteor/local/db/mongodb.lockmeteor reset解决了这个问题。

全部谢谢!

答案 12 :(得分:1)

当我第一次在我的新笔记本电脑(Windows 10)中安装节点和流星时,我偶然发现了这个问题。我没有对默认安装进行任何更改。

Meteor重置或从.meteor / local / db中删除文件对我来说不起作用,因为我正在创建新的应用程序以在本地运行并且目录为空。所以,我可以创建它们,但它们没有运行。试图用旧的流星版本创建应用程序,也失败了。

在我的情况下,通过将目录更改为c:\

解决了

  

cd c:\

     

meteor create testApp

此目录也适用于我从电脑上传输的预先存在的应用程序。我想与NFS filesytems有关,我是新的,所以如果有人可以解释更多关于它我想知道更多。我无法使用所有可能的目录来存储我的应用程序

,这已经令人沮丧了

答案 13 :(得分:1)

第一

  

$ rm .meteor / local / db / mongodb.lock

如果这不起作用

备份,你可以

  

.meteor /本地/分贝/流星*

  

$ meteor reset

并恢复

  

.meteor /本地/分贝/流星*

答案 14 :(得分:1)

我的机器意外关机导致了同样的问题。没有选项帮助,即删除.lock文件或运行导出LC_ALL = C等。
我在Ubuntu 15.04上。我使用指向myApp / .meteor / local / db的--dbpath选项启动了mongo,并且mongo启动日志清楚地表明mongo正在尝试从日志文件夹中的日志恢复数据库。它正在寻找不存在的local.1文件。

所以我尝试了mongo --recovery进一步指出它在我有日志文件夹之前不会工作。
这就是我的所作所为
1.删​​除日记文件夹(将其移至另一个位置 - 以防万一)
2.运行mongo --recovery(不是100%确定,如果实际做了什么)
3.开始流星
它开始没有任何故障,并猜测我的所有数据是否符合预期

答案 15 :(得分:0)

当我第一次在我的新笔记本电脑(Windows 10)中安装节点和流星时,我偶然发现了这个问题。我没有对默认安装进行任何更改。

Meteor重置或从.meteor / local / db中删除文件对我来说不起作用,因为我正在创建新的应用程序以在本地运行并且目录为空。所以,我可以创建它们,但它们没有运行。试图用旧的流星版本创建应用程序,也失败了。

在我的情况下,通过将目录更改为c:\

解决了

cd c:\

meteor create testApp

此目录也适用于我从电脑上传输的预先存在的应用程序。我想与NFS filesytems有关,我是新的,所以如果有人可以解释更多关于它我想知道更多。我无法使用所有可能的目录来存储我的应用程序

,这已经令人沮丧

答案 16 :(得分:0)

I had this problem using Meteor 1.4 on Windows 10. However, I am developing the the same meteor application on an Ubuntu install. The problem for me was caused by differences in the way Mongo 3.2 is implemented on Windows and Ubuntu. My 64 bit Ubuntu install uses WiredTiger. However as it says in the Meteor documentation:

If you are using Windows or 32bit Linux, you can update your development
database to 3.2, however it will continue to use the MMAPv1 storage 
engine, as the 32bit MongoDB binary does not support WiredTiger.

Using meteor reset on Windows blew away the WiredTiger format database from Ubuntu, and then rebuilt it using the old MMAPV1 engine. This solved the exit code 100 error.

答案 17 :(得分:0)

对于那些在Windows上使用bash(Windows子系统Linux / WSL)的人,我发现在/ mnt目录之外创建meteor应用程序可以解决问题。

当我在/ mnt / c / Workspace的工作区中安装它时,它每次都失败了。 但是,一旦我将它安装在主目录(〜)中,它就会第一次运行。 Here's the image.

答案 18 :(得分:0)

如果您已全局安装Mongo,请确保删除/ db / journal文件夹中的所有prealloc文件。

对于Ubuntu,/ db /文件夹通常位于/ data中,因此完整路径为/ data / db / journal。这可能与其他操作系统不同。

答案 19 :(得分:0)

我能够通过导出LC_ALL来修复它,我正在使用Ubuntu

  

导出LC_ALL =" en_US.UTF-8"

答案 20 :(得分:0)

我有同样的问题,我解决了它改变.meteor文件夹的所有权(MongoDB所在的地方)

cd path-to-meteor-app
sudo chown -R youruser:yourgruop .meteor

希望能帮助别人!

答案 21 :(得分:0)

我可以通过删除Local Mogo db lock来恢复错误。

删除数据库锁的步骤:

  1. 导航到您的应用程序目录(您有Meteor应用程序文件的位置)
  2. 删除档案$ rm .meteor / local / db / mongod.lock
  3. 如果Meteor Application仍在后台运行,则会出现错误。正在运行的应用程序未释放Db锁定,或者由于系统/应用程序关闭不当而导致Db锁定,并且对于同一应用程序的第二个实所以每次都要注意退出应用程序。

答案 22 :(得分:0)

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

答案 23 :(得分:-1)

我有同样的错误,我解决了它只是更改目录的名称 对于同伴来说,比较分析......我知道这对初学者来说是一个错误但是我必须告诉这个以帮助人们。 C:\ nube \ MEGA \ cursos \ coursera \ CursowebResposivaEjemplos \compañeros\ meteor_portfolio_website不起作用 C:\ nube \ MEGA \ cursos \ coursera \ CursowebResposivaEjemplos \ companeros \ meteor_portfolio_website正常工作。

答案 24 :(得分:-1)

我通过修改/ usr / local / lib / meteor文件解决了这个问题。

将“export LC_ALL = C LANG = C”添加到此bash脚本

#!/ usr / bin / env bash

导出LC_ALL = C LANG = C

BUNDLE_VERSION = 0.5.16

答案 25 :(得分:-1)

为我工作: 我将项目移动到另一个目录,因为我有Windows 8.1。将项目更改为C:\meteor\project

时,我将项目放在桌面目录中