现实情况
报错如下
解决如下
// 移除服务
rabbitmq-service.bat remove
// 变更数据所在的文件位置,不包含中文
set RABBITMQ_BASE=F:\developApp\ruanjian\RabbitMQ Server\rabbitmq_server-3.8.35\data
rabbitmq-service.bat install
rabbitmq-plugins enable rabbitmq_management
//运行
rabbitmq-server.bat
或者
rabbitmqctl start_app
1 中文路径异常
1 安装时出现的问题
安装之后,打开安装目录的 sbin 目录 RabbitMQ Server\rabbitmq_server-3.8.35\sbin
,打开 cmd,执行命令
rabbitmqctl status
或者 rabbitmqctl start_app
出现以下问题:
** (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, 30427]])
src/rabbit_misc.erl:719: :rabbit_misc."-format_many/1-lc$^0/1-0-"/1
src/rabbit_misc.erl:719: :rabbit_misc."-format_many/1-lc$^0/1-0-"/1
src/rabbit_misc.erl:719: :rabbit_misc.format_many/1
(rabbitmqctl) lib/rabbitmqctl.ex:553: RabbitMQCtl.get_node_diagnostics/1
(rabbitmqctl) lib/rabbitmqctl.ex:409: RabbitMQCtl.format_error/3
(rabbitmqctl) lib/rabbitmqctl.ex:584: RabbitMQCtl.maybe_with_distribution/3
(rabbitmqctl) lib/rabbitmqctl.ex:93: RabbitMQCtl.exec_command/2
:badarg
或者执行 rabbitmq-server.bat
出现以下问题:
BOOT FAILED
===========
Error during startup: {error,
{rabbitmq_management_agent,
{{shutdown,
{failed_to_start_child,rabbit_mgmt_agent_sup,
{shutdown,
{failed_to_start_child,
.....
2 原因
原因一:安装路径中不能带有中文和空格
原因二:
RabbitMQ默认的数据文件位置在 C:\Users\用户名AppData\Roaming\RabbitMQ
若安装路径无问题,那么有可能是因为数据文件路径中 用户名 为中文导致的
3 解决思路(这个有效)
直接修改计算机的用户名:
参考 Win10如何更改C:\Users\下的用户名
用户名修改过于麻烦,尝试通过修改 RabbitMQ 的默认数据文件路径解决:
下面命令一条一条执行
// 移除服务
rabbitmq-service.bat remove
// 变更数据所在的文件位置,不包含中文
set RABBITMQ_BASE=G:\6CodingSoftware\RabbitMQ\rabbitmq_server-3.8.9\data
rabbitmq-service.bat install
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl start_app 或者 rabbitmq-server.bat
在data文件夹下出现以下的内容就说明设置成功
上述情况没有根本解决问题。因为每次启动都需要重复运行上面的命令
如果直接执行 rabbitmq-server.bat 还是原来默认的数据文件路径,而不是修改之后的,并且会报错
所以需要 修改 rabbitmq-env.bat
文件,设置默认的数据文件路径
(我设置默认的数据文件路径没有用,如果嫌一条一条命令执行比较麻烦,可以编写 bat 文件,内容如下:)
start cmd /k "cd /d F:\developApp\ruanjian\RabbitMQ Server\rabbitmq_server-3.8.35\sbin
& rabbitmq-service.bat remove
& set RABBITMQ_BASE=F:\xxx\RabbitMQ Server\rabbitmq_server-3.8.35\data
& rabbitmq-service.bat install
& rabbitmq-plugins enable rabbitmq_management
& rabbitmq-server.bat"
注意 rabbitmq_server-3.8.35\data& 之间不可以有空格,否则识别路径报错
4 解决方法(我设置无效)
修改 rabbitmq-env.bat
文件,设置默认的数据文件路径
在
set ERL_PATH=
set ERL_DIRNAME=
后插入 set RABBITMQ_BASE=!RABBITMQ_HOME!/data
然后执行命令
rabbitmq-service.bat remove
rabbitmq-service.bat install
rabbitmq-plugins enable rabbitmq_management
rabbitmq-server
之后启动 RabbitMQ ,只需要直接运行 rabbitmq-server.bat
2 版本不符异常
若出现以下报错,有可能是 erlang 与 rabbitmq 版本不符异常
{"init terminating in do_boot",{error,{rabbitmq_management_agent,{{
[{error_info,#{module=>erl_erts_errors}}]},{rabbit_mgmt_external_stats,'-i/2-lc$^0/1-0-',1,[{file,"src/rabbit_mgmt_external_stats.erl"}
更加详细的可以通过 RabbitMq 的官网来查看: https://www.rabbitmq.com/which-erlang.html
3 找不到ERLANG_HOME
报错如下:
解决方法一
编辑 rabbitmq_server.bat 文件
直接改成了绝对路径 :
"D:\Program Files\erl9.3\bin\erl.exe"
解决方法二
如果觉得不应该更改安装源自身的代码
增加环境变量
ERLANG_HOME=D:\Program Files\erl9.3
这里的目录是我的安装目录,你要换成自己的目录
修改环境变量Path,在原来的值后面加上
%ERLANG_HOME%\bin
打开cmd,输入 erl 能正常显示版本即成功加入系统环境中
配置后电脑需要重启
然后重新执行 rabbitmq-plugins enable rabbitmq_management