今天想安装下RabbitMQ写几个用例看下,发现最新的安装包有些问题,不能直接安装使用,遇到一些问题,记录一下解决办法。
下载安装包因为RabbitMQ是Erlang编写,安装时,需要先安装Erlang。在RabbitMQ官网(https://www.rabbitmq.com/download.html)提供了Erlang下载(如下图红框内),也可以到Erlang官网下载最新版。我这里下载的都是windows 64位安装包(installer版本)。
运行安装包
依次运行Erlang、RabbitMQ的安装包,安装路径可以随意选择。
注意:Erlang安装成功后,会注册一个环境变量,如下图。
如果遇到安装失败或卸载重新安装,此变量很可能没有被清除。重新安装后,需要手动修改这个环境变量到指定安装目录。
Rabbit安装成功后,开始菜单会列出一些快捷方式,可以点击执行,也可以使用命令行执行RabbitMQ的sbin目录下的批处理指令。
这里(re)install是安装服务,remove移除服务,start启动服务,stop停止服务。
因为安装包里的批处理指令是有问题的, 这里我执行哪一个脚本都会报错。如果在正常情况下,可能RabbitMQ应该已经被安装了windows服务。
可以WIN+R,输入services.msc,查看windows服务里有没有RabbitMQ(默认的服务名)。如下图(是我修改批处理指令后安装成功的)。
或者WIN+R, 输入cmd,执行指令sc query RabbitMQ,也看查看服务状态。
如果服务安装成功,直接sc start RabbitMQ启动即可。
报错解决我这里直接启动快捷方式,或者在sbin目录下执行rabbitmq-service start(或install)指令来启动(或安装)服务,都会出现如下提示:ERLANG_HOME not set correctly。
这里查看系统环境变量,ERLANG_HOME已经正确配置了。只好打开rabbitmq-service.bat脚本查看,搜索这段提示文字,找到如下代码:
发现这里变量的引用符号有问题,应该使用%号。即 !ERLANG_HOME!,应该写成为 %ERLANG_HOME%。
这里需要将所有的变量都改为%引用的形式,同时为防止嵌套调用,将其他.bat文件也修改一下。
我上传了一份我修改过的可以正常使用的脚本目录 https://545c.com/file/14960372-440317523 有需要的话可以下载。
脚本修改正常后,需要执行 rabbitmq-service install 先安装服务。
此时,可能由于之前未完全安装,会遇到类似如下报错(主要包括 "could not set correct interactive mode."这类信息,还有Error后面跟着乱码。因为我当时遇到报错时没有截图,所以在网上查了一个差不多的报错信息。):
其他信息: 执行错误:C:\Program Files\erl6.0\erts-6.0\bin\erlsrv: Warning, could not set correct interactive mode. RabbitMQ Error: 戮盲卤煤脦脼脨搂隆拢 C:\Program Files\erl6.0\erts-6.0\bin\erlsrv: Warning, could not set correct service description (comment) RabbitMQ Error: 戮盲卤煤脦脼脨搂隆拢 C:\Program Files\erl6.0\erts-6.0\bin\erlsrv: Failed to start service RabbitMQ. Error: 戮盲卤煤脦脼脨搂隆拢