参考:
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