RabbitMQ有Nodedown错误
在Windows 7企业机器上,我重新安装了Erlang 17.4和RabbitMQ 3.4.3 x64。 安装成功,顺利。
我还没有尝试创build我的第一个队列或交换,但我已经看到麻烦。 这个问题类似于另一个SOpost ,但是其他post似乎涉及到群集,这是我没有的。 而且,另一张海报可以通过重新启动RabbitMQ服务来避开他的问题; 这种方法不适合我。
我的“nodedown”问题在RabbitMQ命令提示符下显而易见:
C:\ Program Files(x86)\ RabbitMQ Server \ rabbitmq_server-3.4.3 \ sbin> rabbitmqctl status状态节点rabbit @ TPAJ05421843 …
错误:无法连接到节点rabbit @ TPAJ05421843:nodedown诊断
试图联系:[兔子@ TPAJ05421843]
兔@ TPAJ05421843:
*连接到TPAJ05421843上的epmd(端口4369)
* epmd报告:节点“兔子”根本没有运行
TPAJ05421843上的其他节点:['RabbitMQ']
*build议:启动节点当前节点详情:
– 节点名称:'rabbitmqctl-19884 @ TPAJ05421843'
– 主目录:H:\
– cookie哈希值:PD4QQCYrf0TME9vIko3Xuw ==
基于上述,我select了检查显式名为“RabbitMQ”的节点的状态。 我得到这个:
C:\ Program Files(x86)\ RabbitMQ Server \ rabbitmq_server-3.4.3 \ sbin> rabbitmqctl -n RabbitMQ status
节点'RabbitMQ @ TPAJ05421843'的状态…
错误:无法连接到节点“RabbitMQ @ TPAJ05421843”:nodedown诊断
试图联系:['RabbitMQ @ TPAJ05421843']
RabbitMQ的@ TPAJ05421843:
*连接到TPAJ05421843上的epmd(端口4369)
* epmd报告在端口59301上运行的节点“RabbitMQ”
* TCP连接成功,但Erlang分发失败
*build议:主机名不匹配?
*build议:cookie设置是否正确?当前节点详情:
– 节点名称:'rabbitmqctl-23076 @ TPAJ05421843'
– 主目录:H:\
– cookie哈希值:PD4QQCYrf0TME9vIko3Xuw ==
好吧,至less它承认运行在59301端口上的“RabbitMQ”,这样稍微好一点。但是,这意味着“Erlang分发失败”是什么意思呢?
当我试图研究这个话题时,我发现有文章说“确定你有匹配的cookies”。 基于此 ,我发现这篇文章声称“cookie不匹配”与我无关,因为我没有创build(也不打算创build)RabbitMQ集群。
我该怎么办?
今天我也有同样的问题。 没有cookie或防火墙问题,Windows报告说服务运行成功。 这是最终解决的问题:
- 以pipe理员身份运行RabbitMQ sbin命令提示符。
- 运行“rabbitmq-service remove”
- 运行“rabbitmq-service install”
出于某种原因,安装程序设置的服务没有configuration多个registry项。 运行这个设置正确,并允许服务运行。
我注意到的一件事是,在我这样做之前,没有在Windows服务视图中的服务的描述。 使用rabbitmq-service命令安装后,说明是可见的。 如果你有同样的问题,这可能是一个快速的指标。
正如@eddyP所评论的,我有两个不同的cookie。 一个在C:\Windows\.erlang.cookie
,另一个在C:\Users\my_user_name\.erlang.cookie
。 把前者复制到后者,这样两个文件都是一样的,为我解决了这个问题。
从RabbitMQ命令提示符sbin(以pipe理员身份运行)执行此命令:
rabbitmq-server restart
RabbitMQ邮件列表中的相同问题: https ://groups.google.com/forum/#! topic/ rabbitmq-users/0s1ExFhl4hM。
rabbitmqctl
和服务器节点都使用Erlang cookie,因此可能需要照顾(放置在正确的位置)。 请参阅Windows怪癖中的 “以非pipe理员用户身份安装.erlang.cookie在错误的位置”。
在Windown,出于某种原因删除所有文件夹在c:\Users\xxx\AppData\Roaming\RabbitMQ\db\
( xxx
是您的用户名),然后stream@Jerdev答案和
-
启动rabbitmq
net start rabbitmq
-
检查rabbitmq服务
rabbitmqctl status
如果你来这里寻找相同的错误信息的Linux答案,请尝试
sudo service rabbitmq-server start
(这不是一个阻塞命令)
我在Windows 10中解决了我的问题。
- 以pipe理员身份执行RabbitMQ命令提示符(sbin dir)。
- 在(RabbitMQ命令提示符)中执行“rabbitmq-service remove”。
- 在Windows的运行对话框中执行%AppData%。
- 删除RabbitMQ文件夹中的所有文件。
- (RabbitMQ命令提示符)执行“rabbitmq-service install”。
- 在(RabbitMQ命令提示符)中执行“rabbitmqctl start_app”。
只要做到以下几点:
- 卸载rabbitmq和erlang。
- 删除你appdata中的rabbitmq文件夹(如果你不知道appdata的位置,只需在命令提示符下键入echo%AppData% )
- 然后先安装erlang,然后安装rabbitmq。
-
安装完成后,使用以下命令启用pipe理插件:
rabbitmq-plugins启用rabbitmq_management
这是我解决我的Windows 8系统中的错误:
检查放置在Windows的AppData文件夹中的rabbitmq.config
文件中的语法错误。
如何检查是否有语法错误?
您可以从以下位置的sbin文件夹运行rabbitmq-server restart
:
Program Files/RabbitMQ/rabbitmq_server_x.x/sbin/
。
用rabbitmq.config
replacerabbitmq.config
的内容。
您可以在以下位置findrabbitmq.config.example:
Program Files/RabbitMQ/rabbitmq_server_x.x/etc/
警告,您将失去以前用rabbitmq保存的configuration。
更改文件后,点击
rabbitmq-server重新启动
在上面提到的sbin文件夹中。