我尝试运行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
答案 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, []}]}].