参考:

rabbitmq命令:http://lirenjuan.iteye.com/blog/1632503

一、先到官网现在rpm包http://www.rabbitmq.com/install-rpm.html

本人是下载centos7.x的文件是:rabbitmq-server-3.6.11-1.el7.noarch.rpm

因为rabbitMQ是在erlang运行,必须首先安装erlang环境,官网也提供到erlang的链接下载erlang

https://www.erlang-solutions.com/resources/download.html


二、安装erlang环境

因为自己下载erlang在centos7安装时,会报错需要很多的库文件,故我最后还是用yum安装erlang

yum install erlang



执行上面语句时报错说找不到包,那得先安装EPEL库

yum install epel-release

再执行

yum install erlang



三、安装rabbitMQ

安装rabbitmq 

rpm -ivh rabbitmq-server-3.6.11-1.el7.noarch.rpm

提示缺少socat,则安装socat

yum install socat

如果安装socat也报错,先执行

yum makecache


yum install socat



rpm -ivh rabbitmq-server-3.6.11-1.el7.noarch.rpm

因为如果安装的erlang与rabbitMQ要求的版本不符时,会提示16B什么的,缺少依赖,这个可以忽

--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装

rpm -ivh --nodeps rabbitmq-server-3.6.11-1.el7.noarch.rpm



本人安装过两次,第一次提示少依赖,需要--nodeps参数安装,第二次没提示少依赖。。我也没弄清楚原因


四、运行rabbitMQ

查看rabbitmq安装在那里

whereis rabbitmq
whereis erlang





本人是centos7,rabbitmq安装在/usr/lib/rabbitmq

cd /usr/lib/rabbitmq/bin




运行rabbitmq-server,执行命令启动rabbitmq

rabbitmq-server -detached


Warning: PID file not written; -detached was passed.

我这里是提示这个,但是rabbitmq服务已经启动成功


五、执行rabbitmq命令

通过rabbitmqctl可以执行命令

1、关闭服务命令

./rabbitmqctl stop




Stopping and halting node rabbit@localhost

2、添加用户

./rabbitmqctl add_user username 123456

执行会报错

[root@localhost bin]# ./rabbitmqctl add_user username 123456
Error: unable to connect to node rabbit@localhost: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@localhost]

rabbit@localhost:
  * connected to epmd (port 4369) on localhost
  * epmd reports: node 'rabbit' not running at all
                  no other nodes on localhost
  * suggestion: start the node

current node details:
- node name: 'rabbitmq-cli-62@localhost'
- home dir: /root
- cookie hash: sJhGPeLGEDj1Vp7xUwjWYg==

这个问题我也搞了很久,后面才发现,linux上操作rabbitMQ和window上还是有点区别

linux用rabbitmqctl操作时,需要指定节点,默认节点名为:

rabbit@localhost

注:正常情况下node名称应该是rabbit@localhost即可,如果有修改过主机名称,可能node名称会变了,所以可以用

./rabbitmqctl node_health_check

节点检查,查询一下节点的名称




所以命令应该这样写

./rabbitmqctl -n rabbit@localhost add_user username 123456

同理其他建虚拟主机等等命令也需要指定节点


3、设置用户角色

./rabbitmqctl -n rabbit@localhost set_user_tags username administrator




4、用户分配虚拟主机

./rabbitmqctl -n rabbit@localhost set_permissions -p / username '.*' '.*' '.*'




5、创建虚拟主机

./rabbitmqctl -n rabbit@localhost add_vhost myvhost





六、启动管理功能

rabbitmq-plugins enable rabbitmq_management

默认网址为127.0.0.1:15672

默认帐号guest

默认密码guest


七、别人整理的rabbitmq命令

默认的数据库内容 
当第一次启动服务,检测数据库是否未初始化或者被删除,它会用下面的资源初始化一个新的数据库: 

一个命名为 / 的虚拟宿主一个名为guest密码也为guest的用户,他拥有/虚拟宿主的所有权限 
如果你的中间件是公开访问的,最好修改guest用户的密码。 
管理概观 

rabbitmqctl 是RabbitMQ中间件的一个命令行管理工具。它通过连接一个中间件节点执行所有的动作。本地节点默认被命名为”rabbit”。可以通过这个命令前使 用”-n”标志明确的指定节点名称, 例如: 
# rabbitmqctl -n rabbit@shortstop add_user tonyg changeit 
这个命令指示RabbitMQ中间件在rabbit@shortstop 节点创建一个tonyg/changeit的用户。 
在一个名为”server.example.com”的主机,RabbitMQ Erlang节点的名称通常是rabbit@server(除非RABBITMQ_NODENAM在 中间件启动时候被设置)。 
hostnam -s 的输出通常是”@”符号正确的后缀。 
rabbitmqctl 默认产生详细输出。通过”-q”标示可选择安静模式。 
rabbitmqctl -q status 
应用和集群管理 
1.停止RabbitMQ应用,关闭节点 
# rabbitmqctl stop 
2.停止RabbitMQ应用 
# rabbitmqctl stop_app 
3.启动RabbitMQ应用 
# rabbitmqctl start_app 
4.显示RabbitMQ中间件各种信息 
# rabbitmqctl status 
5.重置RabbitMQ节点 
# rabbitmqctl reset 
# rabbitmqctl force_reset 
从它属于的任何集群中移除,从管理数据库中移除所有数据,例如配置过的用户和虚拟宿主, 删除所有持久化的消息。 
force_reset命令和reset的区别是无条件重置节点,不管当前管理数据库状态以及集群的配置。如果数据库或者集群配置发生错误才使用这个最后 的手段。 
注意:只有在停止RabbitMQ应用后,reset和force_reset才能成功。 
6.循环日志文件 
# rabbitmqctl rotate_logs[suffix] 
7.集群管理 
# rabbitmqctl cluster clusternode… 
用户管理 
1.添加用户 
# rabbitmqctl add_user username password 
2.删除用户 
# rabbitmqctl delete_user username 
3.修改密码 
# rabbitmqctl change_password username newpassword 
4.列出所有用户 
# rabbitmqctl list_users 

权限控制 
1.创建虚拟主机 
# rabbitmqctl add_vhost vhostpath 
2.删除虚拟主机 
# rabbitmqctl delete_vhost vhostpath 
3.列出所有虚拟主机 
# rabbitmqctl list_vhosts 
4.设置用户权限 
# rabbitmqctl set_permissions [-p vhostpath] username regexp regexp regexp 
5.清除用户权限 
# rabbitmqctl clear_permissions [-p vhostpath] username 
6.列出虚拟主机上的所有权限 
# rabbitmqctl list_permissions [-p vhostpath] 
7.列出用户权限 
# rabbitmqctl list_user_permissions username