34

我正在测试 Meteor 示例,这是我在运行meteortodos 示例时看到的:

Unexpected mongo exit code 100. Restarting.
Unexpected mongo exit code 100. Restarting.
Unexpected mongo exit code 100. Restarting.
Can't start mongod. Check for other processes listening on port 3002 or other meteors running in the same project.

如果我mongod在命令行中运行,就会发生这种情况:

Thu Apr 12 19:27:39 Mongo DB : starting : pid = 2686 port = 27017 dbpath = /data/db/ master = 0 slave = 0  32-bit 

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations for more

Thu Apr 12 19:27:39 db version v1.4.4, pdfile version 4.5
Thu Apr 12 19:27:39 git version: nogitversion
Thu Apr 12 19:27:39 sys info: Linux murphy 2.6.32.14-dsa-ia32 #1 SMP Thu May 27 16:19:20 CEST 2010 i686 BOOST_LIB_VERSION=1_42
Thu Apr 12 19:27:39 waiting for connections on port 27017
Thu Apr 12 19:27:39 listen(): bind() failed errno:98 Address already in use for port: 27017
Thu Apr 12 19:27:39 MiniWebServer: bind() failed port:28017 errno:98 Address already in use
Thu Apr 12 19:27:39   addr already in use
Thu Apr 12 19:27:39 warning: web admin interface failed to initialize on port 28017

有人帮忙吗?谢谢!

4

26 回答 26

63

我有同样的问题。固定:

警告:这会清除您的本地数据库:

流星重置

于 2012-04-12T16:16:20.573 回答
27

我有同样的问题。只需.meteor/local/db/mongod.lock在您的流星项目文件夹中删除。并且流星应该正常运行。

希望它有所帮助!:)

于 2012-04-29T08:24:56.180 回答
26

正如 mKriss 提到的,尝试

meteor reset

如果您收到此错误:

reset: Meteor is running.

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

然后在你的运行进程中寻找流星:

ps -x | grep meteor

这给了我以下输出:

14877 pts/0    Sl     0:02 /usr/lib/meteor/mongodb/bin/mongod --bind_ip 127.0.0.1 --port 3005 --dbpath /home/sam/proto/.meteor/local/db
15022 pts/0    S+     0:00 grep --color=auto meteor

所以我做了:

kill -s KILL 14877
meteor reset
meteor

现在一切正常!

于 2012-04-18T16:02:32.640 回答
19

不确定这是否与您的问题有关,但我收到此错误并最终发现这是因为我的应用程序目录位于 mongodb 不喜欢的 NFS 共享中(我在 VirtualBox 中的 Ubuntu 上运行)。将我的应用程序放在我的主目录中可以解决问题。

于 2012-04-19T15:41:28.793 回答
11

有几种方法可以解决这个问题,这个问题没有显示如何使用mongod,所以我将介绍如何获得有关错误的更多细节。meteor reset 可能有效,但并非总是如此,如果有效,它将清除您的应用程序数据。

核心问题是流星在显示数据时非常难以描述,因此我建议您获得有关该错误的更多详细信息,因为它实际上可能存在任何 mongodb 错误。下面的步骤应该更详细地重现错误,以帮助诊断根本问题是什么

查找 Meteor 安装 mongodb 的位置

如果您有该mongod工具(可从http://mongodb.com下载),否则使用安装了流星的工具。只是要小心你不要升级旧数据库的版本太新,然后流星的旧 mongodb 将无法理解它。

通常(但不总是)在

/usr/local/meteor/mongodb/bin/mongod(OS X

/usr/lib/meteor/mongodb/bin/mongod(红帽/Debian

C:\Program Files\Meteor\mongodb\bin\mongod.exe(Windows 通过 Tom Wijsman 的端口

使用 mongodb 手动运行 Meteor 的数据库

因此,我们将使用它在您的应用程序 mongodb 数据库上手动运行 mongodb:

在您的项目目录中使用您的终端应用程序/命令提示符

cd .meteor
cd local
/usr/local/meteor/mongodb/bin/mongod --dbpath ./

如果您的mongod路径是其他路径,请改用它,上面的方法适用于 OS X。

分析输出以找到问题的根本原因

现在 mongodb 应该可以运行并很好地描述问题所在,或者运行顺利:

Mon Apr  1 23:59:55 [initandlisten] MongoDB starting : pid=84640 port=27017 dbpath=./ 64-bit  host=MacBook-Pro.local
Mon Apr  1 23:59:55 [initandlisten] 
Mon Apr  1 23:59:55 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
Mon Apr  1 23:59:55 [initandlisten] db version v2.2.1, pdfile version 4.5
Mon Apr  1 23:59:55 [initandlisten] git version: d6764bf8dfe0685521b8bc7b98fd1fab8cfeb5ae
Mon Apr  1 23:59:55 [initandlisten] waiting for connections on port 27017

查看错误可能是什么,然后解决显示的问题。它可能是众多之一。

示例问题

如果有:

exception in initAndListen: 10310 Unable to lock file: ./mongod.lock. Is a mongod instance already running?, terminating

然后重新启动您的计算机以终止任何可能正在使用该文件的进程,如果它仍然无法帮助meteor reset您清除目录,.meteor/local/db那么您的应用程序将使用新的数据库。

这些错误非常有用,例如磁盘空间不足(清理垃圾;-)或无法写入磁盘(权限问题 - 使用 chmod/sudo)。

非常晦涩的问题

如果你发现一些非常令人困惑的东西,它可能是一个 mongodb 问题而不是流星问题,看看你在 stackoverflow 上遇到的错误,如果你找不到它,提出一个问题,希望有一群乐于助人的人准备好帮助 :)

于 2013-04-01T22:05:04.233 回答
10

我有非常简单的解决方案:

export LC_ALL="en_US.UTF-8"

并运行meteor

如果没问题,您可以将此行添加到

sudo vim /usr/local/bin/meteor

于 2014-04-15T17:17:33.107 回答
5

如果流星重置对您不起作用,请检查您的磁盘空间使用情况。

如果您没有任何可用磁盘空间,您将收到此错误。MongoDB 占用大约 450MB,因此创建几个项目可以很快填满一个分区。

于 2012-11-28T16:33:51.297 回答
3

如果您的流星项目位于 DropBox 文件夹中,请检查包含项目文件夹中单词的文件名conflicted copy并将.meteor/local/db/其删除。这应该可以让 Mongod 自由运行。

于 2012-08-02T03:22:02.323 回答
3

这就是帮助我meteor在 Google Compute Engine 上运行的原因:

export LC_ALL=C
于 2014-08-11T22:23:33.067 回答
2

注意项目路径中的重音。

..\Système\MyMeteorProject 将不起作用,..\System\MyMeteorProject 将起作用。

于 2015-07-01T18:48:35.120 回答
1

我知道这个问题已经很老了,但是我也遇到了这个问题,并认为这可能对某人有用。对我来说有效的是运行“sudo meteor”

于 2014-12-21T02:39:35.580 回答
1

我收到此错误消息:

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.

...事实证明,我在不同的端口上运行了同一个应用程序的一个实例,因此将“确保您没有在备用端口上运行的应用程序的任何其他实例”添加到事物列表中可能导致此错误。

于 2015-02-22T18:49:17.967 回答
1

原谅显而易见的,但确实netstat -antep | grep 3002表明了什么?(假设你在 *nix 上)

于 2012-04-11T13:12:47.557 回答
1

对于那些使用 vagrant 并且不想使用的人meteor reset,清除流星本地目录的 db 可以解决冲突。从终端:

rm -rf .meteor/local/db/
于 2016-04-11T23:44:07.223 回答
1

我可以解决 Meteor 1.2.1 下的问题,并通过删除锁定文件、将 .meteor/local/db/ 的剩余内容复制到临时位置(您可以称之为备份)、发出meteor reset并复制备份数据来恢复我的数据回到 .meteor/local/db/。一切都像以前一样工作。

于 2016-02-04T18:47:10.990 回答
0

我从同步中发现了同样的冲突问题。我使用的是 Ubuntu One,在 .meteor/local/db/ 中创建了一堆新文件,并附加了“u1_conflicted”。我删除了那些,以及 .meteor/local/db/journal 中的那些,并且已备份并运行。

于 2014-04-03T23:53:19.410 回答
0

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

删除数据库锁的步骤:

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

注意$ 流星重置

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

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

所以每次都要小心退出应用程序。

于 2015-02-13T19:15:22.270 回答
0
Thu Apr 12 19:27:39 listen(): bind() failed errno:98 Address already in use for port: 27017

其他东西已经在使用端口 27017,所以 mongo 启动失败。在不同的端口上启动 mongo 或首先杀死正在使用 27017 的任何进程。

于 2012-04-12T20:58:27.103 回答
0

Meteor reset命令在 DOS 中对我不起作用

我删除了所有文件和文件夹<projectfolder>/.meteor/local/db to Recycle Bin

**DOS Log below:**

D:\Meteor\todos>meteor reset
Project reset.

D:\Meteor\todos>
于 2012-07-13T05:06:28.730 回答
0

当我尝试在链接到主机文件夹的 VMWare 共享文件夹中创建我的项目时,同样的问题......

cd /mnt/hgfs/Folder_in_C_host_drive

流星创建myapp

cd myapp

流星

意外的 mongo 退出代码 100。重新启动。

...

通过将项目移动到我的文件系统中的标准文件夹来解决... VMWare 共享文件夹无法处理文件安全性,并且任何文件都是 root:root 拥有的...这就是它以那些 MongoDB 错误结束的原因

于 2015-03-17T13:25:06.013 回答
0

如果您使用 Vagrant,MongoDb 将不会在 Vagrant 共享目录中运行:https ://gist.github.com/gabrielhpugliese/5855677

如果您使用 Windows 进行开发工作,Meteor 现在有一个 Windows 安装程序: http ://win.meteor.com/

于 2015-06-22T18:24:13.853 回答
0

meteor resetsudo用户上运行命令。它应该适合你..

于 2018-01-04T12:01:52.877 回答
0

成为超级用户:

# meteor --allow-superuser

于 2017-01-20T02:57:08.157 回答
0

您可以尝试使用以下命令停止运行您的流星应用程序:kill -9ps ax | grep node | grep meteor | awk '{print $1}'

于 2016-01-19T14:14:04.147 回答
0

我有同样的问题。固定:

固定:

  1. 你的项目目录
  2. 重定向到 .meteor 目录 > .local > .db
  3. 在 .db 文件夹中从这里删除所有文件
  4. 运行命令“流星”

它对我来说很好。试试这个,它真的很有帮助。

于 2016-12-28T13:08:41.147 回答
0

不久前我遇到了Unexpected mongo exit code 100. Restarting.错误。我最终在这里回答了我自己的问题,这似乎已经为许多面临同样问题的人解决了问题。最重要的是它不需要meteor reset擦除数据库。这是一个简单且非常快速的方法三步修复,所以我建议在一些更复杂的建议之前尝试它。

于 2016-06-13T12:57:31.300 回答