在搭建RabbitMQ集群的時候往往會因為.erlang.cookie而報各種錯誤,網上查資料也會經常說.erlang.cookie會在$home下,或者在/var/lib/rabbitmq下,到底在rabbitmq啟動的時候用的哪個cookie,cookie存放的路徑在哪里,那么下面我們來仔細的查證一下。
.erlang.cookie是什么
erlang.cookie是erlang實現分布式的必要文件,erlang分布式的每個節點上要保持相同的.erlang.cookie文件,同時保證文件的權限是400。
.erlang.cookie存放路徑
官方在介紹集群的文檔中提到過.erlang.cookie一般會存在這兩個地址:第一個是$home/.erlang.cookie;第二個地方就是/var/lib/rabbitmq/.erlang.cookie。
- 如果我們使用解壓縮方式安裝部署的rabbitmq,那么這個文件會在${home}目錄下,也就是$home/.erlang.cookie。
- 如果我們使用rpm等安裝包方式進行安裝的,那么這個文件會在/var/lib/rabbitmq目錄下。
查看.erlang.cookie真實存在目錄
我們可以通過rabbitmq的啟動日志查看其home目錄是哪里,就可以知道.erlang.cookie存放在哪里,以及mnesia數據庫信息存在哪里。
下面是我通過rpm包安裝的rabbitmq的啟動日志。
=INFO REPORT==== 21-Sep-2016::21:17:42 === node : rabbit@he07 home dir : /var/lib/rabbitmq config file(s) : /etc/rabbitmq/rabbitmq.config (not found) cookie hash : qhOGp9TtH4Rn+BekiYXxIg== log : /var/log/rabbitmq/rabbit@he07.log sasl log : /var/log/rabbitmq/rabbit@he07-sasl.log database dir : /var/lib/rabbitmq/mnesia/rabbit@he07
下面是我通過解壓縮方式安裝的rabbitmq的啟動日志。
=INFO REPORT==== 5-Nov-2016::14:59:01 === node : rabbit@he10 home dir : /root (我是用root用戶啟動的) config file(s) : /home/rabbitmq_server-3.6.1/etc/rabbitmq/rabbitmq.config (not found) cookie hash : 063Gh+RyPjHRzyuSPf9wWA== log : /home/rabbitmq_server-3.6.1/var/log/rabbitmq/rabbit@he10.log sasl log : /home/rabbitmq_server-3.6.1/var/log/rabbitmq/rabbit@he10-sasl.log database dir : /home/rabbitmq_server-3.6.1/var/lib/rabbitmq/mnesia/rabbit@he10
自己做個備忘,希望對大家也有幫助。