前言
最近在Windows server 2012 R2的百度云服务器上安装rabbitmq时,在执行rabbitmqctl status命令时,一直报错,开始时出现的如下错误:
Error: unable to connect to node rabbit@xxx: nodedown
erlang的cookie问题排解
Google、百度了一通后,大多数都说的是cookie的问题,需要保持C:\Windows下的.erlang.cookie和C:\Users\Administrator下的.erlang.cookie一致,然后我搜索了一下,总共在三个地方找到了这个文件,如下图:
然后,我用其中的一个文件中的内容完全替换掉其他两个,这样使三个文件保持一致,然后打开下面这个窗口:
新的错误: unable to perform an operation on node
再次执行rabbitmqctl status命令,此时报了另一个错误:
不解,cookie也设置相同了,环境变量也添加正确了,为什么还是报错,继续寻找问题。
登录账号权限问题
后来看到一个网友说可能是登录账号的问题,我是用administrator账号登录服务器并安装rabbitmq的,rabbitmq也自动在C:\user\administrator下创建了一个.erlang.cookie文件,但是RabbitMQ服务启动的时候,执行者是local system account,如下图所示:
此时,我想到将RabbitMQ服务的启动账号改成administrator,果然,更改后重启服务,再次执行rabbitmqctl status,成功!具体操作如下图所示:
接下来呢,就是在浏览器中查看并设置新的管理员账号,来管理消息队列,具体的操作如下图,同时也可以参考我的另一篇博客中的详细操作。
为新账户设置管理员权限
这里需要说一下的是,在给新创建的账号指定管理员权限时,按照之前的命令:rabbitmqctl.bat set_permissions -p / cmmooc_zhaopin "." "." ".*",执行后,并没有为其赋予administrator的权限,如下图所示:
这里,需要执行这个命令:rabbitmqctl set_user_tags cmmooc_zhaopin administrator,此时才真正设置成管理员权限:
最后,就可以使用新创建的账号来登录rabbitmq网页管理界面了
*本文参考http://blog.csdn.net/starry0819/article/details/79228634,仅用于学习。