我刚刚开始在Windows系统上学习和安装RabbitMQ。
我在自定义文件夹中安装Erlang VM和RabbitMQ,而不是默认文件夹(两者都有)。
然后我重新启动了我的电脑。
顺便说一下,我的电脑名称是“空”
我cd到 RabbitMQ / sbin 文件夹并使用命令:
rabbitmqctl status
但是返回的信息是:
节点兔子@ NULL的状态......
错误:无法对节点'rabbit @ NULL'执行操作。 请参阅下面的诊断信息和建议。
最常见的原因是:
- 目标节点无法访问(例如,由于主机名解析,TCP连接或防火墙问题)
- CLI工具无法通过服务器进行身份验证(例如,由于CLI工具的Erlang cookie与服务器不匹配)
- 目标节点未运行
除了下面的诊断信息:
- 请参阅http://rabbitmq.com/documentation.html上的CLI,群集和网络指南以了解详情
- 查询节点rabbit @ NULL
上的服务器日志诊断
试图联系:[rabbit @ NULL]
兔@ NULL:
- 在NULL
上连接到epmd(端口4369)- epmd报告节点'rabbit'使用端口25672进行节点间和CLI工具流量
TCP连接成功但Erlang分发失败
身份验证失败(被远程节点拒绝),请检查Erlang cookie
当前节点详细信息:
- 节点名称:rabbitmqcli70 @ NULL
- 有效用户的主目录:C:\ Users \ Jerry Song
- Erlang cookie hash:51gvGHZpn0gIK86cfiS7vp ==
我尝试重新启动RabbitMQ,我得到的是:
错误:名称为“rabbit”的节点已在“NULL”上运行
顺便说一句,我的电脑名称是“空” 我已启用防火墙中的所有端口。
答案 0 :(得分:5)
如果您在Windows10中使用开发工具/软件的专用驱动器文件夹位置(不是Windows默认位置),可以按https://www.rabbitmq.com/cli.html所述同步erlang cookie的一种方法是复制cookie,如说明下面。
请注意,在我的情况下,HOMEDRIVE和HOMEPATH环境变量都不设置。
将 " C:\ Windows \ system32 \ config \ systemprofile \ .erlang.cookie" 复制到 & #34; C:\ Users \%USERNAME%\。erlang.cookie" ,
错误" tcp连接成功但Erlang分发失败" 已解决。
现在我可以使用" rabbitmqctl.bat status"命令成功。因此,没有必要安装在默认位置来解决此错误,因为同步cookie将解决该错误。
答案 1 :(得分:4)
https://groups.google.com/forum/#!topic/rabbitmq-users/a6sqrAUX_Fg 描述了在全新安装的Rabbit MQ上存在cookie不匹配的问题。 Windows上的简单解决方案是同步cookie
此处还介绍了:http://www.rabbitmq.com/clustering.html#erlang-cookie
确保Cookie在下面的1,2和3之下同步
%HOMEDRIVE%%HOMEPATH%\.erlang.cookie
(对于用户%USERNAME%,通常为C:\Users\%USERNAME%\.erlang.cookie
)如果同时设置了HOMEDRIVE和HOMEPATH环境变量
%USERPROFILE%\.erlang.cookie
(通常C:\Users\%USERNAME%\.erlang.cookie
)如果 HOMEDRIVE 且 HOMEPATH 未同时设置
%USERPROFILE%\.erlang.cookie
(通常为C:\WINDOWS\system32\config\systemprofile
) Windows服务帐户使用的Cookie文件和运行CLI工具的用户必须通过复制C:\WINDOWS\system32\config\systemprofile
文件夹中的文件来同步。
答案 2 :(得分:1)
我使用默认设置窗口
在我的计算机中重新安装RabbitMQ然后检查命令:
rabbitmqctl status
现在工作,而不是Erlang VM的问题。(意味着Er可以安装在其他的foler上)
如果我们不使用RabbitMQ 默认设置需要填充(C:\ Program Files),这将导致一些我现在无法发现的问题(比如这个问题) \ RabbitMQ Server)
如果有人发现,我希望你能告诉我为什么以及如何解决。
答案 3 :(得分:1)
答案 4 :(得分:1)
我是如何解决我的
这主要是由于新安装的Rabbit MQ cookie不匹配造成的
按照这两个步骤
1. copy the .erlang.cookie file from C:\Windows\System32\config\systemprofile paste it into
C:\Users\["your user nameusername"] folder
2. run rabbitmq-service.bat stop and rabbitmq-service.bat start
当你运行 'rabbitmqctl start_app' 时,现在应该可以工作了,祝你好运。
请注意,如果您有多个用户,请将其放入正确的用户文件夹
答案 5 :(得分:0)
在Centos。
将ip nodename对添加到每个节点上的/ etc / hosts。
在每个从属节点上重启rabbitmq-server服务。
适合我。
答案 6 :(得分:0)
只要增加我的经验,就可以帮助其他人。
我写了一个Powershell .ps1脚本来安装和配置RabbitMQ,这将是为Packer提供服务器的步骤之一。
我在新的AWS W2016 Server构建中编写了代码。当在盒子上运行时(以管理员身份,从admin PS控制台运行),它运行良好,但是当将相同的代码移到Packer构建服务器上时,尽管通过Packer进行Rabbitmqctl.bat配置步骤,但仍会失败(据我所知)管理员可以运行脚本。
这在编码盒上起作用了
$pathvargs = {cmd.exe /c "rabbitmqctl.bat" add_user Username Password}
Invoke-Command -ScriptBlock $pathvargs
$pathvargs = {cmd.exe /c "rabbitmqctl.bat" set_user_tags User administrator}
Invoke-Command -ScriptBlock $pathvargs
$pathvargs = {cmd.exe /c "rabbitmqctl.bat" set_permissions -p "/" User "^User-.*" ".*" ".*"}
Invoke-Command -ScriptBlock $pathvargs
Write-Host "Did RabbitMQ"
但是我不得不以此作为前奏……
copy "C:\Windows\system32\config\systemprofile\.erlang.cookie" "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.17\sbin\.erlang.cookie"
copy "C:\Windows\system32\config\systemprofile\.erlang.cookie" $env:userprofile\.erlang.cookie -force
...在Packer框上。
我猜正在发生一些上下文问题,但是我正在使用
"winrm_username": "Administrator",
在Packer构建器块中,所以我认为就足够了。
TL; DR-即使在某些情况下不使用Cookie也可以使用Cookie。
答案 7 :(得分:0)
在Windows 10中使用默认安装文件夹安装Erlang VM和RabbitMQ之后,我遇到了相同的错误。设法启动管理并通过HTTP访问它,但是状态因此错误而失败。
在所有文件夹(%HOMEDRIVE%%HOMEPATH%
,%USERPROFILE%
,C:\WINDOWS\system32\config\systemprofile
)中,cookie都很好。
我必须重新启动Windows才能使其正常运行。重新启动后,它会设置一些要在启动时运行的内容+要求在防火墙中进行例外处理的权限。
答案 8 :(得分:0)
以我为例,该文件位于c:\\Windows\.erlang.cookie
,只需将其复制到C:\ Users {USERNAME}即可完成所有工作,
答案 9 :(得分:0)
在我的情况下,通过将 .erlang.cookie
文件从 Windows
系统目录 - C:\Windows\system32\config\systemprofile\.erlang.cookie
复制到 %HOMEDRIVE%%HOMEPATH%\.erlang.cookie
(其中 {{ 1}} 分别设置为 %HOMEDRIVE%
和 H:
为 %HOMEPATH%
)
为 Windows、Erlang OTP 24 和 RabbitMQ 3.8.19 快速设置 TODO:
\
(应该指向安装目录)ERLANG_HOME
(应该指向安装目录)RABBITMQ_SERVER
:%PATH%
;%RABBITMQ_SERVER%\sbin
%RABBITMQ_SERVER%/sbin/rabbitmq-plugins.bat enable rabbitmq_management
-> 必须创建它 并再次运行 %USERPROFILEDIR%/AppData/Roaming/RabbitMQ/enabled_plugins
!,或通过 cURL 检查:
%RABBITMQ_SERVER%/sbin/rabbitmq-plugins.bat enable rabbitmq_management
应该收到如下回复:
curl -i -u guest:guest http://localhost:15672/api/vhosts
附言一些有用的 RabbitMQ CLI 命令(copy-paste):
HTTP/1.1 200 OK
cache-control: no-cache
content-length: 186
content-security-policy: script-src 'self' 'unsafe-eval' 'unsafe-inline';
object-src 'self'
content-type: application/json
date: Tue, 13 Jul 2021 11:21:12 GMT
server: Cowboy
vary: accept, accept-encoding, origin
[{"cluster_state":{"rabbit@hostname":"running"},"description":"Default virtual host","metadata":{"description":"Default virtual host","tags":[]},"name":"/","tags":[],"tracing":false}]
%RABBITMQ_SERVER%/sbin/rabbitmqctl start_app
%RABBITMQ_SERVER%/sbin/rabbitmqctl stop_app
P.P.S. 更新:关于这个主题的好文章:https://www.journaldev.com/11655/spring-rabbitmq