我正在尝试运行RabbitMQ Python tutorial,但在虚拟机主机和接收器上使用发送器,在虚拟机客户机上运行队列.所以我修改了提到的send.py代码,只修改了localhost和192.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
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
最佳答案
这是因为您尝试远程使用用户名和密码来验证身份验证.从RabbitMQ 3.3开始,您需要创建一个远程使用的新帐户,并且guest / guest只能在本地使用.
这取自更改日志here.
25603 prevent access using the default guest/guest credentials except via localhost since (1.0.0)
通过从loopback_users中删除guest虚拟机,可以修改RabbitMQ配置以允许使用guest帐户进行远程访问,但建议创建一个新用户以遵循最佳实践.
[{rabbit,[{loopback_users,[]}]}].