尝试将消息发送到远程队列时出现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, []}]}].