2010-10-08 19 views
0

我正在運行RabbitMQ V.2.0.0。在Linux機器上。 mnesia基目前是默認的,但是在Rabbit創建目錄的目錄中,例如。 [email protected]RabbitMQ數據庫文件

目錄名中的ip基於機器的inet addr。這個目錄保存有關用戶,交流,虛擬主機(我認爲)的信息。

我的問題是,我如何修復/配置這些目錄名稱與IP不是基於IP?

回答

0

看來你可以編輯腳本文件(rabbitmq-server,rabbitmq-mulit和rabbitmqcti)。在這些頂部的腳本中是一個主機名變量。

我將主機名設置爲localhost並重新啓動。

這不是最好的,但足以滿足我的要求。主機名必須是正確的地址,它不能是任意的。

+0

另外,您不能通過IP地址尋址RabbitMQ節點。即rabbit @ localhost--良好; [email protected] - bad – scvalex 2010-10-09 18:14:38

+0

這是一個很好的觀點。謝謝。 – 2010-10-10 12:24:50

1

要更改Mnesia目錄,只需在/etc/rabbitmq/rabbitmq.conf中設置MNESIA_DIR。

另外,詢問RabbitMQ相關問題的好地方在rabbitmq-discuss郵件列表上。

+1

根目錄不是問題。這是導致問題的目錄。因爲我使用的是Amazon EC2實例,所以內部IP可以在重新啓動時更改。當發生這種情況時,我失去了我的交流,隊列,虛擬主機等。 – 2010-10-10 12:22:00

+1

這不是根目錄。 MNESIA_BASE是根,MNESIA_DIR通常是MNESIA_BASE/NODENAME,但您可以覆蓋它。 – scvalex 2010-10-11 10:44:10

0

主要的問題是你的新機器有新的主機名 - 目錄是以它的名字命名的(只是重命名目錄,如前所述,沒有幫助),所以我們需要重命名你的機器主機名,並使RabbitMq使用舊文件。 讓「ip-0-0-0-0」爲舊機器名稱(所以應該有一個mnesia文件夾/var/lib/rabbitmq/mnsesia/ip-0-0-0-0)和新機器主機 名稱類似於「ip-1-1-1-1」,但新名稱並不重要,因爲我們將覆蓋它。執行以下命令:

sudo -s 
echo "127.0.0.1 ip-0-0-0-0" >> /etc/hosts 
echo "ip-0-0-0-0" > /etc/hostname 
reboot 

重新啓動後您的計算機將有一個新的名字和RabbitMQ的應與舊文件。