rabbitmqctl status 报错(完美解决)(ArgumentError) argument error (stdlib) io_lib.erl:187: :io_lib.format

一、前言

最近公司项目需要本地搭建RabbitMQ的Windows环境,小编搭建了一上午,一个错接着一个错。有点心累了,还好在最后看到了曙光。看到了一个有用的文章,很多文章都是相互抄袭,都没自己用,在哪里写。小编把这一上午踩过的坑都说一下,为了后面的小伙伴少耽误一点时间花在环境上!!如果帮到你了,记得一键三连哦!!
感谢一下博主,他写的有点不详细哈,我在这里详细说一下,还有一些注意事项!
原链接

二、报错信息

我们在执行:rabbitmqctl status时出现的错误,看到了代号187,如果你是170赶紧叉掉找下一篇博客哈!!

我们来看一下错误照片
在这里插入图片描述
具体报错信息:

Status of node rabbit@LAPTOP-PE5828V4 ...
** (ArgumentError) argument error
    (stdlib) io_lib.erl:187: :io_lib.format(' * effective user\'s 
    home directory: ~s~n', [[67, 58, 92, 85, 115, 101, 114, 
    115, 92, 29579, 25391, 20891]])
    src/rabbit_misc.erl:669: :rabbit_misc."-format_many/1-lc$^0/1-0-"/1
    src/rabbit_misc.erl:669: :rabbit_misc."-format_many/1-lc$^0/1-0-"/1
    src/rabbit_misc.erl:669: :rabbit_misc.format_many/1
    (rabbitmqctl) lib/rabbitmqctl.ex:488: 
    RabbitMQCtl.get_node_diagnostics/1
    (rabbitmqctl) lib/rabbitmqctl.ex:379: RabbitMQCtl.format_error/3
    (rabbitmqctl) lib/rabbitmqctl.ex:45: RabbitMQCtl.main/1
    (elixir) lib/kernel/cli.ex:105: anonymous fn/3 in Kernel.CLI.exec_fun/2

三、友情提示

1. 我们在安装RabbitMQ时,默认路径是C:\Program Files是有空格的,这个可能也会造成报错的原因!!一定要自己找一个目录,安全哈!

2. 还有就是我们的C盘下面的用户是中文名字的也是不行的,也是出现错误的原因。我们要修改,不过很麻烦,需要修改注册表,危险的事咱不做,小编就是这个原因,给大家看一下。随后给出解决方案!!就是更改RabbitMQ 的工作路径

在这里插入图片描述

四、解决方案

1. 首先打开cmd切换到sbin目录下(以管理员身份打开)
在这里插入图片描述
2. 移除rabbitmq-service.bat服务

rabbitmq-service.bat remove

在这里插入图片描述
3. 注意是你的安装目录下面的data哈

小编的安装目录为:D:\software\rabbitMq\rabbitmq_server-3.7.14

输入:

set RABBITMQ_BASE=D:\software\ravvitMq\rabbitmq_server-3.7.14\data

在这里插入图片描述
4. 重新安装rabbitmq-service.bat

rabbitmq-service.bat install

在这里插入图片描述
5. 重新启动服务

rabbitmq-service start

在这里插入图片描述
6. 查看状态

rabbitmqctl status

在这里插入图片描述
7. 安装管理插件

rabbitmq-plugins enable rabbitmq_management

在这里插入图片描述
8. 尝试访问

http://localhost:15672/

在这里插入图片描述
用户名、密码都是:guest

9. 登录成功

在这里插入图片描述

五、总结

这样就解决了,帮助到小伙伴,记得一键三连哈!!
如果想是有Docker安装rabbitMQ的可以看一下小编的这篇文章:
RabbitMQ从概念到使用、从Docker安装到RabbitMQ整合Springboot


有缘人才可以看得到的哦!!!

点击访问!小编自己的网站,里面也是有很多好的文章哦!

### RabbitMQ `rabbitmqctl status` 报错 `badarith` 的原因分析 当执行 `rabbitmqctl status` 命令时遇到 `badarith` 错误,通常表明 Erlang 虚拟机在处理某些数值计算时出现了异常。以下是可能导致此错误的原因及其解决方案: #### 1. **Erlang 版本兼容性问题** 如果使用的 Erlang 版本与 RabbitMQ 不匹配,则可能会引发各种运行时错误,包括 `badarith`。确保所安装的 Erlang 和 RabbitMQ 是官方推荐的版本组合[^1]。 - 验证当前 Erlang 和 RabbitMQ 版本: ```bash erl -version rabbitmq-server -v ``` - 如果发现版本不兼容,请卸载现有 Erlang 并重新安装适合 RabbitMQ 的版本。 --- #### 2. **节点名称冲突或配置文件损坏** RabbitMQ 使用分布式架构依赖于节点名(Node Name)。如果节点名被更改或者配置文件存在语法错误,也可能触发此类错误。 - 检查 `/etc/rabbitmq/rabbitmq.conf` 或 `%APPDATA%\RabbitMQ\rabbitmq.conf` 文件中的配置项是否有误。 - 清理旧数据并重置节点: ```bash rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl start_app ``` - 删除残留的数据目录以清除潜在冲突: ```bash rm -rf /var/lib/rabbitmq/mnesia/* del C:\Users\<用户名>\AppData\Roaming\RabbitMQ\db\ ``` --- #### 3. **内存不足或其他资源限制** `badarith` 还可能是由于系统资源耗尽引起的。例如,在高负载环境下,Erlang VM 尝试分配超出可用范围的内存空间。 - 查看服务器日志确认是否存在 OOM(Out Of Memory)警告: ```bash cat /var/log/rabbitmq/*.log | grep memory type %PROGRAMDATA%\RabbitMQ\Log\rabbit@<hostname>.log | findstr memory ``` - 提升主机硬件性能或调整虚拟机参数来缓解压力。 --- #### 4. **插件未正确加载** 部分功能模块需要额外启用才能正常工作。如果没有激活必要的管理插件,也会影响命令行为。 - 启用 RabbitMQ Management 插件以便更好地监控集群健康状况: ```bash rabbitmq-plugins enable rabbitmq_management ``` - 访问 Web 控制台验证服务是否稳定响应:http://localhost:15672/ --- #### 示例修复脚本 以下是一个综合性的恢复方案供参考: ```bash #!/bin/bash # Step A: Stop the application gracefully. rabbitmqctl stop_app # Step B: Reset all internal states without affecting persistent messages/data. rabbitmqctl reset # Optional Cleanup (if necessary): rm -rf /var/lib/rabbitmq/mnesia/* # Restart everything from scratch. rabbitmqctl start_app ``` --- ### 总结 通过上述方法可以有效定位和解决大部分由 `badarith` 导致的问题。然而实际操作过程中仍需密切观察具体环境差异作出相应调整。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掉发的小王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值