创建rabbitmq用户报错Error: unable to connect to node rabbit@localhost: nodedown

问题描述

启动rabbitmq后创建用户显示无法连接该节点,该节点down了。
在这里插入图片描述

解决方法

杀掉rabbitmq,然后重启

[root@ct ~]# ps aux |grep rabbitmq |grep -v grep |awk '{print $2}' |xargs kill -9

rabbitmq-server -detached	启动rabbitmq
rabbitmqctl status	查看rabbitmq的状态

在这里插入图片描述
此时再创建,可以成功创建
在这里插入图片描述

### RabbitMQ Node Down Hostname Mismatch Error Solution 当遇到 `Node 'rabbit@node1.local' thinks it's clustered with node 'rabbit@node2.local', but 'rabbit@node2.local' disagrees` 的错误时,这通常表明两个节点之间的主机名解析存在冲突或配置不一致。以下是针对此问题的解决方案: #### 1. 验证主机名一致性 确保集群中的所有节点都具有相同的主机名解析方式。可以通过 `/etc/hosts` 文件或者 DNS 来实现统一的名称解析[^1]。 - **检查 /etc/hosts 文件** 确认每台机器上的 `/etc/hosts` 文件中定义了正确的 IP 和主机名映射关系。 ```bash cat /etc/hosts | grep rabbit ``` 如果发现有差异,则需要同步这些文件的内容以保持一致性。 #### 2. 修改 Erlang Cookie 设置 Erlang 节点通过共享同一个 `.erlang.cookie` 文件来验证彼此的身份。如果 cookie 不匹配,即使主机名相同也无法正常通信。 - **确认 .erlang.cookie 是否一致** 登录到每一台服务器上查看该隐藏文件内容是否完全一样: ```bash sudo cat /var/lib/rabbitmq/.erlang.cookie ``` 如果不一致,请复制其中一个有效的 cookie 到其他节点并重启服务: ```bash sudo cp /var/lib/rabbitmq/.erlang.cookie_from_working_node /var/lib/rabbitmq/.erlang.cookie_on_broken_node sudo systemctl restart rabbitmq-server ``` #### 3. 清理旧数据目录 有时残留的数据可能导致新启动的服务尝试连接不存在的老节点。因此建议清理掉有问题节点的相关存储路径后再重新加入集群。 - 停止当前实例 ```bash sudo rabbitmqctl stop_app ``` - 删除 mnesia 数据库 (注意备份重要资料) ```bash sudo rm -rf /var/lib/rabbitmq/mnesia/ ``` - 启动应用并重置节点状态 ```bash sudo rabbitmqctl reset sudo rabbitmqctl start_app ``` 最后按照官方文档指导完成新的集群组建过程. #### 4. 使用 Fully Qualified Domain Names(FQDNs) 推荐始终采用完整的域名而非短名称构建 RabbitMQ 集群成员间的联系。这样可以减少因本地配置引起的误解风险。 例如,在设置环境变量 RABBITMQ_NODENAME 或者运行命令时指定 FQDN: ```bash export RABBITMQ_NODENAME=rabbit@fully.qualified.domain.name ``` 以上方法能够有效处理由主机名不符引发的 RabbitMQ 下线状况。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值