windows上RabbitMQ 启动时报错:发生系统错误 1067。 进程意外终止。
在服务中直接启动报错,在命令行中到rabbitmq的安装目录的sbin文件夹下使用rabbitmq-server start,报错更加详细:
将这段报错告诉chatgpt后得知:
这个 RabbitMQ 报错主要是 Erlang 启动分布式节点失败导致的,关键报错是:
bash
{'EXIT',nodistribution}
这表示 Erlang 启动 net_kernel
时没法建立分布式通信,RabbitMQ 在启动时默认会给自己起一个 Erlang 节点名(rabbit@DESKTOP-JQSFK1U
),但节点名解析失败或主机名无法解析,就会直接退出。
常见原因
Erlang 节点名解析失败
RabbitMQ 要用的主机名(这里是DESKTOP-JQSFK1U
)无法通过本机解析到 IP(尤其是在 Windows 上,如果hosts
文件或 DNS 配置有问题就会出错)。Erlang 使用了
shortnames
但主机名不符合要求
如果name_domain => shortnames
,就要求你能用短主机名(不带域名)直接通信;但有时在 Windows 上主机名太长或者有特殊字符,会导致失败。未配置
hosts
文件
在 Windows 上如果C:\Windows\System32\drivers\etc\hosts
里没有127.0.0.1 DESKTOP-JQSFK1U
这种映射,RabbitMQ 启动就会失败。Erlang Cookie 不匹配(这种情况更常见在集群,但单节点一般不是问题)
给我的解决方案:
配置 hosts 文件
打开
C:\Windows\System32\drivers\etc\hosts
添加一行(替换成你报错里的主机名):
127.0.0.1 DESKTOP-JQSFK1U
保存后再次启动rabbitmq,启动成功,并访问127.0.0.1:15672页面成功