1、停止应用
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
2、添加用户
注意:用命令行添加用户,而不是用其提供的后台用户管理,否则用后台用户管理生成的用户登录会出现错误 (原因未明,版本 RabbitMQ 3.8.17):
PhpAmqpLib\Exception\AMQPConnectionClosedException: ACCESS_REFUSED - Login was refused using authentication mechanism AMQPLAIN.
rabbitmqctl add_user rabbitmqxd xdrabbitmq
rabbitmqctl set_user_tags rabbitmqxd administrator
rabbitmqctl set_permissions -p "{VHOST}" rabbitmqxd '.*' '.*' '.*'
rabbitmqctl add_user mqtt-user mqtt-user
rabbitmqctl set_user_tags mqtt-useradministrator
rabbitmqctl set_permissions -p "{VHOST}" mqtt-user '.*' '.*' '.*'
3、添加vhost
rabbitmqctl add vhost IA-TE001
rabbitmqctl add vhost ZDT016
rabbitmqctl add vhost ZDT017
rabbitmqctl add vhost ZDT018
4、添加mqtt 虚拟主机端口映射设置
rabbitmqctl set_global_parameter mqtt_port_to_vhost_mapping \
'{"1883":"/ZDT016", "8883":"/ZDT016", "1886":"/ZDT018", "8886":"/ZDT018"}'
5 启动管理插件
./rabbitmq-plugins enable rabbitmq_management
查看已经安装的插件
./rabbitmq-plugins list
6 docker 运行rabbitmq命令, 例子:
# 添虚拟机
docker exec ia-rabbitmq rabbitmqctl add_vhost IA-TE001
# 添用户
docker exec ia-rabbitmq rabbitmqctl add_user {name} {pwd}
# 赋权
docker exec ia-rabbitmq rabbitmqctl set_permissions -p "IA-TE001" ia-user1 '.*' '.*' '.*'
7 MQTT 客户端连接到 RabbitMQ Vhost
用户名格式:{vhost} + ':' + {username}, 如:
IA-TE001:ia-user1
参考: