我正在運行RabbitMQ V.2.0.0。在Linux機器上。 mnesia基目前是默認的,但是在Rabbit創建目錄的目錄中,例如。 [email protected]。RabbitMQ數據庫文件
目錄名中的ip基於機器的inet addr。這個目錄保存有關用戶,交流,虛擬主機(我認爲)的信息。
我的問題是,我如何修復/配置這些目錄名稱與IP不是基於IP?
我正在運行RabbitMQ V.2.0.0。在Linux機器上。 mnesia基目前是默認的,但是在Rabbit創建目錄的目錄中,例如。 [email protected]。RabbitMQ數據庫文件
目錄名中的ip基於機器的inet addr。這個目錄保存有關用戶,交流,虛擬主機(我認爲)的信息。
我的問題是,我如何修復/配置這些目錄名稱與IP不是基於IP?
看來你可以編輯腳本文件(rabbitmq-server,rabbitmq-mulit和rabbitmqcti)。在這些頂部的腳本中是一個主機名變量。
我將主機名設置爲localhost並重新啓動。
這不是最好的,但足以滿足我的要求。主機名必須是正確的地址,它不能是任意的。
要更改Mnesia目錄,只需在/etc/rabbitmq/rabbitmq.conf中設置MNESIA_DIR。
另外,詢問RabbitMQ相關問題的好地方在rabbitmq-discuss郵件列表上。
根目錄不是問題。這是導致問題的目錄。因爲我使用的是Amazon EC2實例,所以內部IP可以在重新啓動時更改。當發生這種情況時,我失去了我的交流,隊列,虛擬主機等。 – 2010-10-10 12:22:00
這不是根目錄。 MNESIA_BASE是根,MNESIA_DIR通常是MNESIA_BASE/NODENAME,但您可以覆蓋它。 – scvalex 2010-10-11 10:44:10
主要的問題是你的新機器有新的主機名 - 目錄是以它的名字命名的(只是重命名目錄,如前所述,沒有幫助),所以我們需要重命名你的機器主機名,並使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的應與舊文件。
另外,您不能通過IP地址尋址RabbitMQ節點。即rabbit @ localhost--良好; [email protected] - bad – scvalex 2010-10-09 18:14:38
這是一個很好的觀點。謝謝。 – 2010-10-10 12:24:50