Meteor(Meteorite)错误:在端口3000上侦听EADDRINUSE,错误:在其他端口上连接ECONNREFUSED

时间:2014-01-15 18:50:28

标签: meteor meteorite

我在OSX上运行陨石(带有测试项目,所以错误不应该由于我写的任何内容),并且当我在默认端口3000上运行时出现以下错误。我已经检查过,没有其他进程正在访问该端口。

event.js:72     扔掉\未处理的'错误'事件     错误:听EADDRINUSE     在errnoExeception:(net.js:901:11)     在Server._listen2(net.js:1039.14)     在听(net.js:1061:10)     在net.js:1135:9     在dns.js:72:18     at process._tickCallback(node.js:415:13)     在Function.Module.runMain(module.js:499:11)     在启动时(node.js:119:16)     在node.js:901:3

当我尝试在我知道被占用的端口上运行mrt时,我收到正确的错误消息(无法侦听端口3001),当我尝试在另一个未占用的端口上运行时,我得到: 错误:连接ECONNREFUSED

有什么建议吗?

进一步更新:

我刚刚完成关机/重启,选择了一个新的端口号(3200),检查没有使用该端口或其附近的任何东西,并运行meteor --port 3200.我得到了:

I20140115-14:02:29.623(-7)? ----------Wed Jan 15 2014 14:02:29 GMT-0700 (MST) SQL Driver Starting --------
W20140115-14:02:29.639(-7)? (STDERR) Error: connect ECONNREFUSED
W20140115-14:02:29.639(-7)? (STDERR)     at errnoException (net.js:901:11)
W20140115-14:02:29.640(-7)? (STDERR)     at Object.afterConnect [as oncomplete]     (net.js:892:19)
W20140115-14:02:29.640(-7)? (STDERR)     --------------------
W20140115-14:02:29.641(-7)? (STDERR)     at Handshake.Sequence (/Users/a230073/.meteor/tools/09b63f1ed5/lib/node_modules/mysql/lib/protocol/sequences/Sequence.js:15:20)
W20140115-14:02:29.641(-7)? (STDERR)     at new Handshake (/Users/a230073/.meteor/tools/09b63f1ed5/lib/node_modules/mysql/lib/protocol/sequences/Handshake.js:9:12)
W20140115-14:02:29.641(-7)? (STDERR)     at Protocol.handshake (/Users/a230073/.meteor/tools/09b63f1ed5/lib/node_modules/mysql/lib/protocol/Protocol.js:41:50)
W20140115-14:02:29.642(-7)? (STDERR)     at PoolConnection.Connection.connect (/Users/a230073/.meteor/tools/09b63f1ed5/lib/node_modules/mysql/lib/Connection.js:73:18)
W20140115-14:02:29.642(-7)? (STDERR)     at Pool.getConnection (/Users/a230073/.meteor/tools/09b63f1ed5/lib/node_modules/mysql/lib/Pool.js:43:23)
W20140115-14:02:29.642(-7)? (STDERR)     at app/server/dbinit.js:13:6
W20140115-14:02:29.642(-7)? (STDERR)     at app/server/dbinit.js:79:3
W20140115-14:02:29.643(-7)? (STDERR)     at /Users/lfrey/Desktop/Thesis/test-meteor-sql/.meteor/local/build/programs/server/boot.js:155:10
W20140115-14:02:29.643(-7)? (STDERR)     at Array.forEach (native)
W20140115-14:02:29.643(-7)? (STDERR)     at Function._.each._.forEach (/Users/a230073/.meteor/tools/09b63f1ed5/lib/node_modules/underscore/underscore.js:79:11)

2 个答案:

答案 0 :(得分:0)

首先,您应该使用meteor而不是mrt启动应用。该惯例在几个版本之前发生了变化。

如果您之前正在运行的meteor进程未正确退出,则当您尝试在同一端口上启动另一个时,会出现EADDRINUSE错误。简单的解决方案就是重启。您还可以尝试查找该流程并手动终止该流程:运行ps aux | grep meteorkill PID其中PID是流程ID(ps输出中的第2列)。当然,您可能只是使用该端口进行其他一些不相关的过程......但首先尝试上述过程。

如果您尝试在另一个端口上运行您的进程,例如除非端口不可用,否则meteor --port 4000应该有效。例如,在* NIX计算机上,1024以下的端口需要提升权限才能使用。

答案 1 :(得分:0)

我和gulp有同样的问题...你需要找到端口的PSID,然后运行 杀死PSID号上的-9。你应该能够再次运行它之后。

sudo lsof -i :3200
sudo kill -9 PSID