当我在本地计算机上启动rabbitmq服务器时,我在连接它时遇到了问题。显然,在我的本地计算机上运行的服务器的 erlang cookie 与我本地计算机上的 cookie 不匹配。我在互联网上发现了一篇旧帖子,解释说在本地计算机上运行时出现这样的问题可能是由于我没有以安装程序为您创建的rabbitmq用户运行rabbitmq而引起的。所以我就是这样做的,并使用以下命令以rabbitmq用户身份启动rabbitmq。
sudo -H -u rabbitmq bash /usr/lib/rabbitmq/bin/rabbitmq-server
它到底是如何运作的?由于我没有用于用户rabbitmq的专用文件夹,我想了解可以为提到的用户保存erlang cookie的位置,以便它与我的主文件夹中的cookie(它在那里)不匹配。另外,我想知道命令 --set-home 在给定命令的上下文中如何工作,因为此类用户没有(据我理解)有主目录。
答案1
RabbitMQ 安装程序创建rabbitmq
用户并将主目录设置为/var/lib/rabbitmq
.您可以通过rabbitmq
在 中查找用户来发现这一点/etc/passwd
。
显然,在我的本地计算机上运行的服务器的 erlang cookie 与我本地计算机上的 cookie 不匹配。
你怎么会知道这事?您是否运行命令并看到错误?这是重要信息。
通过软件包安装时,RabbitMQ 的使用方式是由init
( systemd
) 作为rabbitmq
用户启动。然后,当您需要运行 时rabbitmqctl
,您可以执行 asroot
命令并切换到用户rabbitmq
,确保使用正确的 cookie。
您可以将该/var/lib/rabbitmq/.erlang.cookie
文件复制到您的主目录并rabbbitmqctl
以您自己的用户身份运行。
笔记:RabbitMQ 团队监控rabbitmq-users
邮件列表并且有时只在 StackOverflow 上回答问题。