55

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

我在 apache 用户下作为 /mnt/apshared 安装了 Windows SBS 服务器的 samba 共享。我在其中创建了一个名为“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 the meteor 命令,并检查我的磁盘空间有 70GB 可用空间)没有奏效。我很确定这些问题与许可有关。

我尝试chown递归到 root:root (因为我以 root 身份登录),并chmod递归到 777,但无济于事。

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

提前致谢。

4

26 回答 26

88

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

cd /path/to/my/project

在这里,您需要删除mongodb.lock文件。

rm .meteor/local/db/mongodb.lock

现在你可以使用命令运行 Meteor,

meteor

于 2013-03-25T08:33:27.710 回答
43

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

rm -rf .meteor/local/db/mongod.lock .meteor/local/db/journal/
于 2015-09-13T19:44:36.160 回答
16

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

于 2014-03-31T21:51:40.523 回答
14

看起来可以通过从不在挂载中的目录运行流星来找到临时解决方案。Mongodb 似乎对共享不太友好,因此您需要设置 rsync 以定期将文件从共享复制到运行流星的目录。

资料来源:在 Meteor 中运行示例的问题

于 2013-04-17T03:40:53.587 回答
11

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

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

于 2014-03-03T11:58:06.820 回答
5

这对我有帮助。

  1. 我删除了 .meteor/local/db/mongod.lock
  2. 我杀死了mongod进程。您可以使用“ps -ef | grep mongo”找到它
于 2014-02-14T04:34:43.233 回答
5

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

于 2014-07-03T21:43:14.640 回答
3

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

于 2013-07-13T12:28:51.700 回答
2

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

rm .meteor/local/db/mongod.lock

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

我现在做

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

一切都恢复正常而不会删除我的数据库

于 2014-10-17T15:47:32.443 回答
2

我在 Windows 8.1 x64 上遇到了同样的问题:“意外的 mongo 退出代码 100。重新启动。” . 而“流星重置”或“删除 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 目录不存在。然而,它存在。问题是我在路径中有一个特殊字符(我名字中的重音 é)。我将我的流星项目文件夹移动到磁盘中的另一个位置,该路径没有重音,并且工作正常。

希望这会有所帮助。

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

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

于 2015-11-11T12:47:09.587 回答
1

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

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

于 2015-04-12T14:34:36.710 回答
1

第一的

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

如果这不起作用

尽可能备份

.meteor/local/db/meteor*

$流星重置

并恢复

.meteor/local/db/meteor*

于 2015-04-17T06:21:07.497 回答
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
于 2016-04-15T18:46:54.807 回答
1

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

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

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

CDC:\

流星创建testApp

这个目录也适用于我从我的电脑转移的预先存在的应用程序。我想这与 NFS 文件系统有关,我对这一切都很陌生,所以如果有人能解释更多关于它的信息,我很想了解更多。我无法使用所有可能的目录来存储我的应用程序已经令人沮丧

于 2016-06-26T17:04:14.670 回答
1

解决了!就我而言deleting meteor/local/db/mongodb.lockmeteor reset解决问题。

谢谢大家!

于 2016-04-04T11:04:42.823 回答
0

我遇到了同样的问题,我解决了更改 .meteor 文件夹(MongoDB 所在的位置)的所有权

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

希望能帮助到某人!

于 2015-03-19T14:18:28.590 回答
0

我可以通过删除本地 Mogo 数据库锁来恢复错误。

删除数据库锁的步骤:

  1. 导航到你的应用程序目录(你有 Meteor 应用程序文件的地方)
  2. 删除文件 $ rm .meteor/local/db/mongod.lock

如果 Meteor 应用程序仍在后台运行,则会发生错误。正在运行的应用程序或由于不正确的系统/应用程序关闭以及同一应用程序的第二个实例无法释放数据库锁。所以每次都要小心退出应用程序。

于 2015-02-13T19:09:37.513 回答
0

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

于 2014-09-17T20:08:41.910 回答
0

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

导出 LC_ALL="en_US.UTF-8"

于 2015-08-05T13:21:27.170 回答
0

我在 Windows 10 上使用 Meteor 1.4 时遇到了这个问题。但是,我正在 Ubuntu 安装上开发相同的流星应用程序。对我来说,问题是由于在 Windows 和 Ubuntu 上实现 Mongo 3.2 的方式不同造成的。我的 64 位 Ubuntu 安装使用 WiredTiger。但是,正如 Meteor文档中所说:

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.

在 Windows 上使用meteor reset从 Ubuntu 中删除了 WiredTiger 格式的数据库,然后使用旧的 MMAPV1 引擎对其进行了重建。这解决了退出代码 100 错误。

于 2016-08-31T18:48:21.507 回答
0

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

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

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

cd c:\

meteor create testApp

这个目录也适用于我从我的电脑转移的预先存在的应用程序。我想这与 NFS 文件系统有关,我对这一切都很陌生,所以如果有人能解释更多关于它的信息,我很想了解更多。我无法使用所有可能的目录来存储我的应用程序已经令人沮丧

于 2016-06-26T17:09:13.720 回答
0

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

于 2016-05-30T21:55:38.267 回答
0

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

当我将它安装在 /mnt/c/Workspace 的工作区中时,它每次都失败。但是,一旦我将它安装在主目录 (~) 中,它就会第一次运行。 这是图像。

于 2017-10-10T12:52:05.883 回答
0

如果你已经全局安装了 Mongo,那么一定要删除 /db/journal 文件夹中的所有 prealloc 文件。

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

于 2016-04-06T06:26:22.263 回答
-1

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

于 2016-05-07T20:58:47.727 回答
-1

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

在这个 bash 脚本中添加“export LC_ALL=C LANG=C”


#!/usr/bin/env bash

导出 LC_ALL=C LANG=C

BUNDLE_VERSION=0.5.16


于 2016-05-12T02:32:48.933 回答