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

时间:2015-05-13 19:09:14

标签: python rabbitmq pika

我尝试运行RabbitMQ Python tutorial但是虚拟机主机上的发送方和虚拟机来宾机上的接收方和队列。所以我修改了提到的 send.py 代码,仅用 192.168.1.5 替换 localhost 。当我运行它时,我收到以下错误:

...
  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

主机是Debian 7,Python 2.7.3和pika 0.9.14,guest是Ubuntu 15.04 with rabbitmq-server 3.4.3-2

1 个答案:

答案 0 :(得分:13)

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

这取自更改日志here

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

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

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