RabbitMQ服务启动失败:.erlang cookie路径异常问题排查
故障核心表现:启动RabbitMQ服务时Erlang进程崩溃,系统无法创建erlang.cookie对应路径,异常路径开头被额外拼接c:盘符前缀,常规卸载、清理RabbitMQ相关注册表、环境变量后问题复现,可按以下优先级逐一排查定位:
- 检查Erlang原生配置文件残留
RabbitMQ卸载不会删除Erlang自身的配置文件,优先排查以下位置:- 全局cookie文件位置:检查
C:\Windows\System32\config\systemprofile\.erlang.cookie(系统服务运行态读取的cookie)、C:\Users\<当前登录用户名>\.erlang.cookie(用户态读取的cookie),如果文件存在先直接删除,Erlang启动时会自动重新生成。 - Erlang运行时配置:打开
<Erlang安装目录>\bin\erl.ini,检查Rootdir、Bindir配置项是否存在重复盘符拼接,比如出现c:C:\Program Files\Erlang OTP这类错误值,直接修改为正确的绝对路径保存即可。
- 全局cookie文件位置:检查
- 校验RabbitMQ系统服务启动参数
按Win+R输入services.msc打开服务列表,找到RabbitMQ服务右键查看属性,核对「可执行文件路径」字段的启动参数,检查是否存在错误的-home、-setcookie参数携带重复盘符。如果参数异常,用管理员权限打开终端执行以下命令重新注册服务:cd <RabbitMQ安装目录>\sbin rabbitmq-service.bat remove rabbitmq-service.bat install net start RabbitMQ - 排查系统环境变量异常
常规清理容易遗漏系统内置环境变量的错误配置,右键「此电脑」-「属性」-「高级系统设置」-「环境变量」,重点检查两类配置:- 系统路径变量:检查
HOMEDRIVE、HOMEPATH配置,如果HOMEDRIVE配置为c:,同时HOMEPATH开头带C:\前缀,路径拼接后就会出现c:C:\xxx的异常格式,修正为标准值(HOMEDRIVE=C:,HOMEPATH=\Users\<你的用户名>)即可。 - RabbitMQ残留变量:检查是否残留
RABBITMQ_CONFIG_FILE、RABBITMQ_MNESIA_BASE、RABBITMQ_LOG_BASE配置,存在错误值直接删除,RabbitMQ启动时会自动使用默认路径。
- 系统路径变量:检查
- 校验Erlang基础运行状态
上述配置都正常时,用管理员权限打开终端直接输入erl回车,看是否能正常进入Erlang交互shell:- 如果启动erl直接报cookie路径错误,说明Erlang安装权限异常,给Erlang安装目录、系统盘用户目录分配SYSTEM账户和当前登录账户的完全控制权限,重启系统后重试。
- 如果erl能正常启动,说明问题仅出在RabbitMQ服务的运行权限上,将RabbitMQ服务的登录身份修改为本地系统账户、勾选「允许服务与桌面交互」后重启服务即可。
内容的提问来源于stack exchange,提问作者Jon Kosir
相关产品推荐
相关产品推荐

