遇到一個問題
一個 rabbitmq server 的記憶體不夠了,加了記憶體之後重啟
重啟後發現,賬號登入不上了!
嚇死我
研究了一下,原因如下:
- rabbitmq sever 依賴 hostname。
- 機器上的 hostname 沒有持久化,重啟之後,hostname 變了
先來說說第一個問題。
rabbitmq server 的資料持久化儲存在 /vobiledata/rabbitmq
目錄下面:
root@iZbp1ghi852mxfw5grbimsZ:/vobiledata/rabbitmq# ll
total 40K
drwxr-xr-x 7 rabbitmq rabbitmq 4.0K Feb 17 21:44 .
drwxr-xr-x 4 root root 4.0K Feb 24 2022 ..
drwxr-x--- 2 rabbitmq rabbitmq 4.0K Feb 17 21:37 log
drwxr-x--- 5 rabbitmq rabbitmq 4.0K Feb 17 21:45 rabbit@iZbp1ghi852mxfw5grbimsZ
-rw-r----- 1 rabbitmq rabbitmq 163 Feb 17 21:37 rabbit@iZbp1ghi852mxfw5grbimsZ-feature_flags
-rw-r----- 1 rabbitmq rabbitmq 4 Feb 17 21:44 rabbit@iZbp1ghi852mxfw5grbimsZ.pid
drwxr-x--- 2 rabbitmq rabbitmq 4.0K Feb 17 21:44 rabbit@iZbp1ghi852mxfw5grbimsZ-plugins-expand
drwxr-x--- 5 rabbitmq rabbitmq 4.0K Feb 17 21:35 rabbit@szbq-rabbitmq-52
-rw-r----- 1 rabbitmq rabbitmq 137 Jul 15 2022 rabbit@szbq-rabbitmq-52-feature_flags
drwxr-x--- 2 rabbitmq rabbitmq 4.0K Feb 17 19:39 rabbit@szbq-rabbitmq-52-plugins-expand
重啟之前,我的 hostname 是 szbq-rabbitmq-52,重啟之後 hostname 變成了 iZbp1ghi852mxfw5grbimsZ,因為 hostname 變了,所以 rabbitmq sevrer 在 /vobiledata/rabbitmq
下又建立了一個關於 iZbp1ghi852mxfw5grbimsZ 的一堆目錄,而我之前的資料,包括 excharge、queue、message甚至賬號資訊都是儲存在 rabbit@szbq-rabbitmq-52 相關目錄下面的
所以,這個問題要怎麼解決,其實就是修改 hostname,然後重啟一下 rabbitmq server,一切都就回來了
service rabbitmq-server restart
參考: rabbitmq 如何在 docker 下做資料持久化?
然後說會第二個問題,hostname 持久化和不持久化的問題
hostname 怎麼樣是不持久化的?hostname szbq-rabbitmq-52
這樣執行就是臨時的 ,機器重啟就會回去
那要怎麼持久化 hostname?修改 /etc/hostname
檔案即可