在搭建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
自己做个备忘,希望对大家也有帮助。