尝试将消息发送到远程队列时出现pika.exceptions.ProbableAuthenticationError


问题内容

我正在尝试运行RabbitMQ Python教程,但是在virtualbox主机上具有发送方,在virtualbox来宾计算机上具有接收方和队列。因此,我仅通过将
localhost* 替换为 192.168.1.5来 修改了提及的 send.py 代码。当我运行它时,出现以下错误: *


...
  File "/home/damian/.virtualenvs/kivy_1.9/local/lib/python2.7/site-packages/pika/adapters/base_connection.py", line 153, in _check_state_on_disconnect
    raise exceptions.ProbableAuthenticationError
pika.exceptions.ProbableAuthenticationError

rabbitmq-server似乎正在运行,因为当我停止它时, send.py 给了我:

...
  File "/home/damian/.virtualenvs/kivy_1.9/local/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 301, in _adapter_connect
    raise exceptions.AMQPConnectionError(error)
pika.exceptions.AMQPConnectionError: Connection to 192.168.1.5:5672 failed: [Errno 111] Connection refused

这很有意义。

如何修复 ProbableAuthenticationError

主机是具有Python 2.7.3和pika 0.9.14的Debian 7,来宾是具有Rabbitmq-server 3.4.3-2的Ubuntu
15.04。


问题答案:

这是因为您尝试guest远程使用用户名和密码进行身份验证。从RabbitMQ
3.3
开始,您需要创建一个新帐户以供远程使用,并且guest/guest只能在本地使用。

这是从此处的更改日志中获取的。

25603 prevent access using the default guest/guest credentials except via localhost since (1.0.0)

guest通过guest从loopback_users中删除,可以修改RabbitMQ配置以允许使用该帐户进行远程访问,但是建议创建一个新用户以遵循最佳实践。

[{rabbit, [{loopback_users, []}]}].