rabbitmq Error: unable to connect to node XXX@XXX: nodedown

你的名字 2022-06-05 02:44 330阅读 0赞

1、环境:

centos 7.3

2、问题描述

今天在部署rabbitmq作为前后端消息推送过程中出现如下错误

  1. $ rabbitmqctl set_permissions -p / duni ".*" ".*" ".*"
  2. Error: unable to connect to node rabbit@bbbbdddd: nodedown
  3. DIAGNOSTICS
  4. ===========
  5. attempted to contact: [rabbit@bbbbdddd]
  6. rabbit@bbbbdddd:
  7. * connected to epmd (port 4369) on bbbbdddd
  8. * epmd reports node 'rabbit' running on port 25672
  9. * TCP connection succeeded but Erlang distribution failed
  10. * Hostname mismatch: node "rabbit@localhost" believes its host is different. Please ensure that hostnames resolve the same way locally and on "rabbit@localhost"
  11. current node details:
  12. - node name: 'rabbitmq-cli-92@bbbbdddd'
  13. - home dir: /var/lib/rabbitmq
  14. - cookie hash: h6TDjQ+DgPaVGJLMjcG4TA==

连接不上我部署rabbitmq的主机bbbbdddd

3、谷歌

谷歌找到在stack overflow找到相应的问题

这里写图片描述

这里说给rabbitmq命令权限,删除服务再重新安装,试过后发现我这边不行 。。。

继续谷歌,又有人说更正Erlang的cookie:

Erlang会生成两个cookie文件:C:\Windows.erlang.cookie 及 C:\用户\你的用户名.erlang.cookie。检查两个文件内容是否一致,不一致用其中一个替换另一个即可。

windows平台,额。。。我的环境是linux,而且查找根目录也没有找到有两个.erlang.cookie文件

  1. $ find / --name .erlang.cookie
  2. /var/lib/rabbitmq/.erlang.cookie

所以放弃了。

4、解决方法

最终的解决方法是设置主机名,重启rabbitmq服务

  1. # 先把rabbitmq进程杀掉
  2. $ ps -ef | grep rabbitmq | grep -v grep | awk '{print $2}' | xargs kill -9
  3. # 设置hostname(假设主机ip为:192.168.1.1,主机名设为:mq)
  4. $ echo 192.168.1.1 mq >> /etc/hosts
  5. $ echo rabbitmq >> /etc/hostname
  6. $ export HOSTNAME=mq
  7. # 重启rabbitmq
  8. $ rabbitmq-server -detached
  9. # 开启web socket服务
  10. $ rabbitmq-plugins enable rabbitmq_management rabbitmq_web_stomp
  11. # 设置用户并给予管理员权限
  12. $ rabbitmqctl add_user duni duni
  13. $ rabbitmqctl set_user_tags duni administrator
  14. # 设置用户目录
  15. $ rabbitmqctl set_permissions -p / duni ".*" ".*" ".*"

发表评论

表情:
评论列表 (有 0 条评论,330人围观)

还没有评论,来说两句吧...

相关阅读