Linux 搭建RabbitMQ关于主机名不一致的问题

1、环境:

centos 7.3

2、问题描述

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

$ rabbitmqctl set_permissions -p / duni ".*" ".*" ".*"

Error: unable to connect to node rabbit@bbbbdddd: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@bbbbdddd]

rabbit@bbbbdddd:
  * connected to epmd (port 4369) on bbbbdddd
  * epmd reports node 'rabbit' running on port 25672
  * TCP connection succeeded but Erlang distribution failed

  * Hostname mismatch: node "rabbit@localhost" believes its host is different. Please ensure that hostnames resolve the same way locally and on "rabbit@localhost"


current node details:
- node name: 'rabbitmq-cli-92@bbbbdddd'
- home dir: /var/lib/rabbitmq
- 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文件

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

所以放弃了。

4、解决方法

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

# 先把rabbitmq进程杀掉
$ ps -ef | grep rabbitmq | grep -v grep | awk '{print $2}' | xargs kill -9

# 设置hostname(假设主机ip为:192.168.1.1,主机名设为:mq)
$ echo 192.168.1.1 mq > /etc/hosts
$ echo rabbitmq > /etc/hostname
$ export HOSTNAME=mq

# 重启rabbitmq
$ rabbitmq-server -detached
# 开启web socket服务
$ rabbitmq-plugins enable rabbitmq_management rabbitmq_web_stomp
# 设置用户并给予管理员权限
$ rabbitmqctl add_user duni duni
$ rabbitmqctl set_user_tags duni administrator
# 设置用户目录
$ rabbitmqctl set_permissions -p / duni ".*" ".*" ".*"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值