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

Dam*_*zuk 5 python rabbitmq pika

我正在尝试运行RabbitMQ Python教程,但是虚拟机主机上的发送者和虚拟机客户机上的接收器和队列.所以我修改了提到的send.py代码,只修改了localhost192.168.1.5.当我运行它时,我收到以下错误:

...
  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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

这很有道理.

如何修复ProbableAuthenticationError

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

ean*_*son 13

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

这取自此处的更改日志.

25603 prevent access using the default guest/guest credentials except via localhost since (1.0.0)
Run Code Online (Sandbox Code Playgroud)

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

[{rabbit, [{loopback_users, []}]}].
Run Code Online (Sandbox Code Playgroud)