rabbitmq无用使用guest用户远程连接
最近开始使用rabbitmq,因为不了解,浪费了不少时间,记录如下:
使用场景:服务器(linux)上部署了一个app1模块,该模块向rabbitmq发送消息,我想让这个模块的消息发送到我本地(windows)
遇到问题:为实现使用场景中的目的,因此将app1中配置的rabbitmq的ip地址改成了我本地的ip,用户名和密码都是guest,最后发现连接失败,直接报如下错误:
nested exception is com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
解决问题:
尝试1:创建新用户
从网上查了一下,原因如下:账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用rabbitmq(该功能是在3.3.0版本引入的)。
因此,新建了一个用户admin,密码也是admin,并开启了所有权限(可参考:https://www.linuxidc.com/Linux/2014-10/107917.htm),将app1配置文件中的用户名和密码也进行了相应的修改,如下所示:
#=====================rabbitmq================================
rabbit.mq.host=192.168.40.140
rabbit.mq.username=admin
rabbit.mq.password=admin
rabbit.mq.event.add.name=event
rabbit.mq.event.update.name=eventupdate
rabbit.mq.event.mail.name=eventmail
结果仍然报错,再查,说是rabbitmq的配置文件需要改一下(仍参考上个网址),改完还是报同样的错,最后在app1中查询了一下代码,发现配置文件中配置的
rabbit.mq.username和rabbit.mq.password,即rabbitmq的用户名和密码并没有使用,rabbit初始化连接的代码如下
public void init() throws Exception{
factory = new ConnectionFactory();
factory.setAutomaticRecoveryEnabled(true);
factory.setExceptionHandler(new RabbitMqExcetionHandler());
factory.setHost(rabbitmqHost);
connection = factory.newConnection();
channel = connection.createChannel();
}
既然没有用到用户名和密码,那默认应该使用的是guest用户,因此,尝试开启guest远程访问
尝试2:尝试开启guest远程访问(请参考:https://www.cnblogs.com/mingaixin/p/4134920.html)
开启guest远程访问的方法是:将rabbitmq安装目录下ebin目录下rabbit.app中loopback_users里的<<"guest">>删除,重启rabbitmq服务,结果成功了
rabbitmq无用使用guest用户远程连接的更多相关文章
- Mysql权限控制 - 允许用户远程连接
Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...
- Mysql权限控制 - 允许用户远程连接(转载)
Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...
- 170424、Mysql权限控制 - 允许用户远程连接
Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...
- 配置mysql允许远程连接的方法
默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件. 一.修改/etc/mysql/my.conf找到bind-address = 127.0 ...
- Linux下设置允许myql数据库远程连接
系统环境: Linux ubuntu --generic #-Ubuntu SMP Thu Apr :: UTC x86_64 x86_64 x86_64 GNU/Linux 系统中已经安装好mysq ...
- 设置root远程连接ubuntu上mysql
1.安装mysql,如果是root用户,直接执行一下命令.如果非root,则需要用sudo命令 a. apt-get install mysql-server b. apt-get isntall m ...
- centos6.8 配置mysql赋予mysql远程连接权限
1.关掉防火墙 2.检查3306端口是否开放 3.修改用户用户权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '您的数据库密码' ...
- Linux 开放端口号(mysql开启远程连接)
在 Centos 7 或 RHEL 7 或 Fedora 中防火墙由 firewalld 来管理,而不是 iptables. 一.firewalld 防火墙语法命令如下:启用区域端口和协议组合 fir ...
- MySQL开启远程连接的方法
默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件. 一.修改/etc/mysql/my.conf找到bind-address = 127.0 ...
随机推荐
- 再议GCC编译时的静态库依赖次顺问题
假设有如三个源代码文件: $ cat a.cpp void a() { } $ cat b.cpp extern void a(); void b() { a(); // 调用a.cpp中的a() } ...
- Linux umask权限
文件基本权限 Linux中文件权限由三部分组成: rw-r--r-- 前三位:表示用户所拥有的权限 中三位:表示用户所在组的权限 后三们:表示其他用户的权限 权限 八进制 十进制 - - - 000 ...
- HDU2544 最短路 2017-04-12 18:51 31人阅读 评论(0) 收藏
最短路 Time Limit : 5000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissio ...
- nginx docker 方式启动后日志切分的正确姿势
Linux系统的日志文件的切分主要是由logrotate来完成的,以centos7为例配置通常在/etc/logrotate.d 目录下 添加 nginx 文件 cat nginx /var/log/ ...
- 【转载】45个设计师们不常见的html5和css3漂亮模板
对于Web开发人员来说,当他们需要创建一个非常时尚和新潮的CSS3和HTML5网站时需要非常专业的水准.html5和css3的结合能够做出非同寻常的网站效果..所以,今天,我推荐给大家45个免费的时尚 ...
- spark on yarn模式下配置spark-sql访问hive元数据
spark on yarn模式下配置spark-sql访问hive元数据 目的:在spark on yarn模式下,执行spark-sql访问hive的元数据.并对比一下spark-sql 和hive ...
- jenkin+docker+git持续集成环境搭建
1.安装Jenkins(需要在Jenkins容器中安装maven,java环境不用安装,Jenkins初次启动时会自动安装) 参考:docker中安装Jenkins 2.配置git 3.安装docke ...
- shell查找进程并终止
创建kill.sh文件,内容如下: port= #一.根据端口号查询对应的pid,两种都行 pid=$(netstat -nlp | grep :$port | awk '{print $7}' | ...
- [ruby]rubyGem出现ERROR: Could not find a valid gem时的处理方法
场景: 想安装SASS的时候,打开cmd,输入gem install sass的时候却出现了: ERROR: Could not find a valid gem 'sass' (>= 0), ...
- 在Windows Server 2008上部署免费的https证书
背景 后web时代,https加密的重要性不言而喻.主流浏览器均对http站点标记不安全,敦促web服务提供商尽快升级至https. 原先的https证书多由各大域名服务商提供,动辄成千上万的部署证书 ...