windows上RabbitMQ 启动时报错:发生系统错误 1067。 进程意外终止。

在服务中直接启动报错,在命令行中到rabbitmq的安装目录的sbin文件夹下使用rabbitmq-server start,报错更加详细:

将这段报错告诉chatgpt后得知:

这个 RabbitMQ 报错主要是 Erlang 启动分布式节点失败导致的,关键报错是:

复制代码

bash

{'EXIT',nodistribution}

这表示 Erlang 启动 net_kernel 时没法建立分布式通信,RabbitMQ 在启动时默认会给自己起一个 Erlang 节点名(rabbit@DESKTOP-JQSFK1U),但节点名解析失败或主机名无法解析,就会直接退出。

常见原因

  1. Erlang 节点名解析失败

    RabbitMQ 要用的主机名(这里是 DESKTOP-JQSFK1U)无法通过本机解析到 IP(尤其是在 Windows 上,如果 hosts 文件或 DNS 配置有问题就会出错)。

  2. Erlang 使用了 shortnames 但主机名不符合要求

    如果 name_domain => shortnames,就要求你能用短主机名(不带域名)直接通信;但有时在 Windows 上主机名太长或者有特殊字符,会导致失败。

  3. 未配置 hosts 文件

    在 Windows 上如果 C:\Windows\System32\drivers\etc\hosts 里没有 127.0.0.1 DESKTOP-JQSFK1U 这种映射,RabbitMQ 启动就会失败。

  4. Erlang Cookie 不匹配(这种情况更常见在集群,但单节点一般不是问题)

给我的解决方案:

配置 hosts 文件
  1. 打开 C:\Windows\System32\drivers\etc\hosts

  2. 添加一行(替换成你报错里的主机名):

    127.0.0.1 DESKTOP-JQSFK1U

保存后再次启动rabbitmq,启动成功,并访问127.0.0.1:15672页面成功