今天想安裝下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: 戮盲鹵煤脦脼脨摟隆攏
遇到這種是因為之前的不完整安裝導致注冊表信息未清理干凈。
WIN+R,輸入 regedit 打開注冊表。找到路徑HKEY_LOCAL_MACHINE / SOFTWARE / Ericsson / Erlang / ErlSrv / 1.1 / RabbitMQ ,刪除即可。
清理注冊表后,即可正常安裝。安裝成功后,啟動服務即可。
配置參數在路徑 C:\Users\【當前登錄的PC用戶】\AppData\Roaming\RabbitMQ\advanced.config,可以保持默認的不配。
安裝后台管理界面
服務安裝成功后,在rabbitMQ的sbin目錄下,
執行 rabbitmq-plugins list 可以查看已安裝的插件。
執行 rabbitmq-plugins enable rabbitmq-management 可安裝后台管理界面。
安裝成功后,訪問 localhost:15672/#/ 即可,默認用戶名和密碼都是guest
至此,應該可以正常使用了。如有其他安裝問題,歡迎留言。