連接 rabbitmq 時出現 vhost xxx is down

結論

若是開發機,就將 log 檔內出現訊息的目錄路徑 (EX: /usr/local/var/lib/rabbitmq/mnesia/rabbit@localhost/msg_stores/vhosts/) 下全部目錄 (EX: /usr/local/var/lib/rabbitmq/mnesia/rabbit@localhost/msg_stores/vhosts/3K8BYTAB7XH75O0PT5H1VI8KT) 刪除掉。
重新啟動,結束。

緣由

我在 MacOS 開發時,用 brew 安裝 rabbitmq ,但啟動時卻加入 sudo ,導致後來不加 sudo 執行反而有問題。
先是出現錯誤訊息,類似某些目錄無法刪除。
於是先用 sudo 刪掉那些目錄。
再來啟動後沒有錯誤訊息了,但連接時卻一直出現 “vhost xxx is down” 。
一開始還導向防火牆的問題來解決,但沒用。
於是搜尋了一下,發現這篇文章。
https://medium.com/@pratibhasharmadba/rabbitmq-server-issue-vhost-is-down-b9f5a718ec4f
於是我也查了 log 檔,發現一堆錯誤,類似。

[error] <0.441.0> CRASH REPORT Process <0.441.0> with 0 neighbours exited with reason: {error,{{{badmatch,{error,{"/usr/local/var/lib/rabbitmq/mnesia/rabbit@localhost/msg_stores/vhosts/D4LMTHUFD57L6RXBFY3MVI0BM/msg_store_transient/0.rdq",eacces}}},[{rabbit_msg_store,init,1,[{file,"src/rabbit_msg_store.erl"},{line,731}]},{gen_server2,init_it,6,[{file,"src/gen_server2.erl"},{line,565}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]},{child,undefined,msg_store_transient,{rabbit_msg_store,start_link,[msg_store_transient,"/usr/local/var/lib/rabbitmq/mnesia/rabbit...",...]},...}}} in gen_server2:init_it/6 line 600

於是按照文章的方法處理,但我是刪除以下全部的目錄,建議若不是開發機,還是乖乖地調整權限。

留言