一.安装 Erlang
在安装 rabbitMQ 之前,需要先安装 Erlang 。
官网链接:http://www.erlang.org/downloads
本文安装的是 otp_win64_18.1.exe,安装目录为 E:\erl7.1
查看系统环境变量是否已添加:
ERLANG_HOME=E:\erl7.1
二.安装 RabbitMQ
官网链接:http://www.rabbitmq.com/download.html
默认安装的 RabbitMQ 监听端口是 5672
本文安装的是 rabbitmq-server-3.6.5.exe,安装目录为 E:\RabbitMQ Server
最好添加在环境变量 Path 中添加上 E:\RabbitMQ Server\rabbitmq_server-3.6.5\sbin 路径,方便后续执行命令。
三.配置
3.1 基本步骤
在安装目录下找到 sbin 文件夹,如 E:\RabbitMQ Server\rabbitmq_server-3.6.5\sbin,此文件夹存放了 rabbitmq 的操作脚本文件。
在此文件夹中使用 cmd 打开命令窗口。
运行以下命令查看是否安装成功:
rabbitmqctl status
出现以下内容:
Status of node 'rabbit@PC-20160802JFII' ...
[{pid,2800},
{running_applications,
[{rabbitmq_management,"RabbitMQ Management Console","3.6.5"},
{rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.6.5"},
{webmachine,"webmachine","1.10.3"},
{mochiweb,"MochiMedia Web Server","2.13.1"},
{ssl,"Erlang/OTP SSL application","7.1"},
{public_key,"Public key infrastructure","1.0.1"},
{crypto,"CRYPTO","3.6.1"},
{asn1,"The Erlang ASN1 compiler version 4.0","4.0"},
{rabbitmq_management_agent,"RabbitMQ Management Agent","3.6.5"},
{rabbit,"RabbitMQ","3.6.5"},
{ranch,"Socket acceptor pool for TCP protocols.","1.2.1"},
{syntax_tools,"Syntax tools","1.7"},
{amqp_client,"RabbitMQ AMQP Client","3.6.5"},
{rabbit_common,[],"3.6.5"},
{xmerl,"XML parser","1.3.8"},
{compiler,"ERTS CXC 138 10","6.0.1"},
{mnesia,"MNESIA CXC 138 12","4.13.1"},
{os_mon,"CPO CXC 138 46","2.4"},
{inets,"INETS CXC 138 49","6.0.1"},
{sasl,"SASL CXC 138 11","2.6"},
{stdlib,"ERTS CXC 138 10","2.6"},
{kernel,"ERTS CXC 138 10","4.1"}]},
{os,{win32,nt}},
{erlang_version,
"Erlang/OTP 18 [erts-7.1] [64-bit] [smp:4:4] [async-threads:64]\n"},
说明 RabbitMQ 处于成功运行状态。
激活 RabbitMQ's Management Plugin(RabbitMQ 管理插件)
使用 RabbitMQ 管理插件,可以更好的可视化方式查看 Rabbit MQ 服务器实例的状态。
输入以下命令:
rabbitmq-plugins enable rabbitmq_management
安装好插件之后,需要使用系统管理员重启服务:
net stop RabbitMQ && net start RabbitMQ
或使用
rabbitmq-server restart
此时访问 http://localhost:15672 ,即可看到如下界面:
初始账号为:guest;初始密码为:guest;
3.2 常见错误处理
3.2.1 运行 rabbitmqctl status
报错
错误 1:
若显示如下错误:
系统找不到指定的路径。
******************************
ERLANG_HOME not set correctly.
******************************
Please either set ERLANG_HOME to point to your Erlang installation or place the
RabbitMQ server distribution in the Erlang lib folder.
解决方法:
针对以上错误,需要将 Erlang 的安装目录加入 ERLANG_HOME 环境变量。
错误 2:
若显示如下错误:
Status of node 'rabbit@PC-20160802JFII' ...
Error: unable to connect to node 'rabbit@PC-20160802JFII': nodedown
DIAGNOSTICS
===========
attempted to contact: ['rabbit@PC-20160802JFII']
rabbit@PC-20160802JFII:
* connected to epmd (port 4369) on PC-20160802JFII
* epmd reports: node 'rabbit' not running at all
no other nodes on PC-20160802JFII
* suggestion: start the node
current node details:
- node name: 'rabbitmq-cli-71@PC-20160802JFII'
- home dir: C:\Users\Administrator
- cookie hash: dNaminTztSUTXnrGzjTMlg==
解决方法:
- 节点 rabbit 未启动,执行
rabbitmq-server restart
启动 rabbit 服务。再另外打开一个命令行窗口使用rabbitmqctl status
查看状态。 - 主机名原因,使用命令
hostname
查看主机名是否与上文"rabbit@ 主机名"部分的主机名相同,若不相同,重启服务器,或修改主机名即可。
笔者是通过方法 1 解决的。
错误 3:
若显示如下错误:
Status of node 'rabbit@PC-20160802JFII' ...
Error: unable to connect to node 'rabbit@PC-20160802JFII': nodedown
DIAGNOSTICS
===========
attempted to contact: ['rabbit@PC-20160802JFII']
rabbit@PC-20160802JFII:
* connected to epmd (port 4369) on PC-20160802JFII
* epmd reports node 'rabbit' running on port 25672
* TCP connection succeeded but Erlang distribution failed
* suggestion: hostname mismatch?
* suggestion: is the cookie set correctly?
* suggestion: is the Erlang distribution using TLS?
current node details:
- node name: 'rabbitmq-cli-92@PC-20160802JFII'
- home dir: C:\Users\Administrator
- cookie hash: 8EjkxpRyt7k15b4Za2LWDg==
解决方法:
将 C:\Windows\.erlang.cookie
复制一份,拷贝到 C:\Users\%USERNAME%\.erlang.cookie
目录下,点击替换即可。
3.2.2 运行 rabbitmq-server restart
报错
错误 1:
若显示如下错误:
BOOT FAILED
===========
Error description:
"Found lock file at ~s.\n Either previous upgrade is in progress o
r has failed.\n Database backup path: ~s"
Log files (may contain more information):
C:/Users/ADMINI~1/AppData/Roaming/RabbitMQ/log/RABBIT~1.LOG
C:/Users/ADMINI~1/AppData/Roaming/RabbitMQ/log/RABBIT~3.LOG
Stack trace:
[{rabbit_upgrade,ensure_backup_taken,
["c:/Users/ADMINI~1/AppData/Roaming/RabbitMQ/db/RABBIT~1/sch
ema_upgrade_lock",
"c:/Users/ADMINI~1/AppData/Roaming/RabbitMQ/db/RABBIT~1-upg
rade-backup"],
[{file,"src/rabbit_upgrade.erl"},{line,101}]},
{rabbit_upgrade,maybe_upgrade_mnesia,0,
[{file,"src/rabbit_upgrade.erl"},{line,144}]},
{rabbit,'-boot/0-fun-0-',0,[{file,"src/rabbit.erl"},{line,271}]},
{rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,403}]},
{init,start_it,1,[{file,"init.erl"},{line,1054}]},
{init,start_em,1,[{file,"init.erl"},{line,1034}]}]
{"init terminating in do_boot","Found lock file at ~s.\n Either previ
ous upgrade is in progress or has failed.\n Database backup path: ~s"
}
Crash dump is being written to: erl_crash.dump...done
init terminating in do_boot (Found lock file at ~s.
Either previous upgrade is in progress or has failed.
Database backup path: ~s)
解决方法:
查看报错中 db 所在位置,即可找到文件夹 C:\Users\Administrator\AppData\Roaming\RabbitMQ,删除该文件夹,重新运行 rabbitmq-server restart
即可。
3.3 创建用户,密码,绑定角色
(1) 查看已有用户及用户的角色:
rabbitmqctl list_users
(2) 新增一个用户:
rabbitmqctl add_user username password
(3) 设置用户角色:
rabbitmqctl set_user_tags username 角色1 角色2 角色3
(4) 修改用户密码:
rabbitmqctl change_password userName newPassword
(5) 删除用户:
rabbitmqctl delete_user username
也可在可视化网页中进行相关操作。
3.4 权限设置
权限相关命令为:
(1) 设置用户权限
rabbitmqctl set_permissions -p VHostPath User ConfP WriteP ReadP
(2) 查看(指定hostpath)所有用户的权限信息
rabbitmqctl list_permissions [-p VHostPath]
(3) 查看指定用户的权限信息
rabbitmqctl list_user_permissions User
(4) 清除用户的权限信息
rabbitmqctl clear_permissions [-p VHostPath] User
也可在可视化网页中进行相关操作。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于