更改 cookie 文件后 RabbitMQ 节点身份验证失败
RabbitMQ node authentification failed after changing cookie file
我在不同的机器上有多个 RabbitMQ 节点 运行。安装每个节点后,我未能为每个节点指定一个通用 cookie,因此我不得不返回并手动更改文件 .erlang.cookie 。我的问题是,在执行此操作后,我收到了相互矛盾的错误消息。如果我做 rabbitmqctl status
我收到以下错误:
DIAGNOSTICS
attempted to contact: ['rabbit@nc-mso-test01']
rabbit@nc-mso-test01: * connected to epmd (port 4369) on
nc-mso-test01 * epmd reports node 'rabbit' running on port 25672 *
TCP connection succeeded but Erlang distribution failed
- Authentication failed (rejected by the remote node), please check
the Erlang cookie
current node details:
- node name: 'rabbitmq-cli-45@nc-mso-test01'
- home dir: C:\Users\jol
- cookie hash: 9/Hx6l+wLQv3NkmSDFqBog==
无论我调用什么脚本,我都会得到同样的错误。我尝试重新启动服务,通过 rabbitmq-service 删除和安装它。错误仍然存在。从我从其他帖子中收集到的信息来看,原因可能是节点和 erlang 代理在不同的用户上 运行,并且每个用户都有不同版本的 cookie,其中一个被旧版本卡住了。
如何让服务器和节点重新启动,以便它们都使用新的 cookie 文件?
我解决了我的问题。我错过了 RabbitMQ 设置有两个 cookie 文件的事实,一个在 c:\Windows 中用于 erlang 组件,另一个在 C:\Users\%USER% 中。据我了解,如果 erlan VM 是在它自己的应用程序用户上启动的,而 RabbitMQ 节点是在不同的用户上启动的,这本来就是我的情况,那么这两个 cookie 文件是不同的,我必须在同步之前同步它们集群 cookie。
文档说:
The cookie file used by the Windows service account and the user running CLI tools must be synchronised. RabbitMQ-Clustering Guide
在从 20.2 开始的 Erlang 版本中,cookie 文件位置为:
- 对于用户 运行 CLI 工具 - 通常
C:\Users\%USERNAME%\.erlang.cookie
对于用户 %USERNAME%
- 对于 RabbitMQ Windows 服务 -
%USERPROFILE%\.erlang.cookie
(通常 C:\WINDOWS\system32\config\systemprofile
)
在 20.2 之前的 Erlang 版本(例如 19.3 或 20.1)上,cookie 文件位置为:
- 对于用户 运行 CLI 工具 - 通常
C:\Users\%USERNAME%\.erlang.cookie
对于用户 %USERNAME%
- 对于 RabbitMQ Windows 服务 -
%WINDIR%\.erlang.cookie
(通常 C:\Windows\.erlang.cookie
)
我在不同的机器上有多个 RabbitMQ 节点 运行。安装每个节点后,我未能为每个节点指定一个通用 cookie,因此我不得不返回并手动更改文件 .erlang.cookie 。我的问题是,在执行此操作后,我收到了相互矛盾的错误消息。如果我做 rabbitmqctl status 我收到以下错误:
DIAGNOSTICS
attempted to contact: ['rabbit@nc-mso-test01']
rabbit@nc-mso-test01: * connected to epmd (port 4369) on nc-mso-test01 * epmd reports node 'rabbit' running on port 25672 * TCP connection succeeded but Erlang distribution failed
- Authentication failed (rejected by the remote node), please check the Erlang cookie
current node details: - node name: 'rabbitmq-cli-45@nc-mso-test01' - home dir: C:\Users\jol - cookie hash: 9/Hx6l+wLQv3NkmSDFqBog==
无论我调用什么脚本,我都会得到同样的错误。我尝试重新启动服务,通过 rabbitmq-service 删除和安装它。错误仍然存在。从我从其他帖子中收集到的信息来看,原因可能是节点和 erlang 代理在不同的用户上 运行,并且每个用户都有不同版本的 cookie,其中一个被旧版本卡住了。
如何让服务器和节点重新启动,以便它们都使用新的 cookie 文件?
我解决了我的问题。我错过了 RabbitMQ 设置有两个 cookie 文件的事实,一个在 c:\Windows 中用于 erlang 组件,另一个在 C:\Users\%USER% 中。据我了解,如果 erlan VM 是在它自己的应用程序用户上启动的,而 RabbitMQ 节点是在不同的用户上启动的,这本来就是我的情况,那么这两个 cookie 文件是不同的,我必须在同步之前同步它们集群 cookie。
文档说:
The cookie file used by the Windows service account and the user running CLI tools must be synchronised. RabbitMQ-Clustering Guide
在从 20.2 开始的 Erlang 版本中,cookie 文件位置为:
- 对于用户 运行 CLI 工具 - 通常
C:\Users\%USERNAME%\.erlang.cookie
对于用户%USERNAME%
- 对于 RabbitMQ Windows 服务 -
%USERPROFILE%\.erlang.cookie
(通常C:\WINDOWS\system32\config\systemprofile
)
在 20.2 之前的 Erlang 版本(例如 19.3 或 20.1)上,cookie 文件位置为:
- 对于用户 运行 CLI 工具 - 通常
C:\Users\%USERNAME%\.erlang.cookie
对于用户%USERNAME%
- 对于 RabbitMQ Windows 服务 -
%WINDIR%\.erlang.cookie
(通常C:\Windows\.erlang.cookie
)