最近开始使用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用户远程连接的更多相关文章

  1. Mysql权限控制 - 允许用户远程连接

    Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...

  2. Mysql权限控制 - 允许用户远程连接(转载)

    Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...

  3. 170424、Mysql权限控制 - 允许用户远程连接

    Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...

  4. 配置mysql允许远程连接的方法

    默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件. 一.修改/etc/mysql/my.conf找到bind-address = 127.0 ...

  5. Linux下设置允许myql数据库远程连接

    系统环境: Linux ubuntu --generic #-Ubuntu SMP Thu Apr :: UTC x86_64 x86_64 x86_64 GNU/Linux 系统中已经安装好mysq ...

  6. 设置root远程连接ubuntu上mysql

    1.安装mysql,如果是root用户,直接执行一下命令.如果非root,则需要用sudo命令 a. apt-get install mysql-server b. apt-get isntall m ...

  7. centos6.8 配置mysql赋予mysql远程连接权限

    1.关掉防火墙 2.检查3306端口是否开放 3.修改用户用户权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '您的数据库密码' ...

  8. Linux 开放端口号(mysql开启远程连接)

    在 Centos 7 或 RHEL 7 或 Fedora 中防火墙由 firewalld 来管理,而不是 iptables. 一.firewalld 防火墙语法命令如下:启用区域端口和协议组合 fir ...

  9. MySQL开启远程连接的方法

    默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件. 一.修改/etc/mysql/my.conf找到bind-address = 127.0 ...

随机推荐

  1. 再议GCC编译时的静态库依赖次顺问题

    假设有如三个源代码文件: $ cat a.cpp void a() { } $ cat b.cpp extern void a(); void b() { a(); // 调用a.cpp中的a() } ...

  2. Linux umask权限

    文件基本权限 Linux中文件权限由三部分组成: rw-r--r-- 前三位:表示用户所拥有的权限 中三位:表示用户所在组的权限 后三们:表示其他用户的权限 权限 八进制 十进制 - - - 000 ...

  3. HDU2544 最短路 2017-04-12 18:51 31人阅读 评论(0) 收藏

    最短路 Time Limit : 5000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submissio ...

  4. nginx docker 方式启动后日志切分的正确姿势

    Linux系统的日志文件的切分主要是由logrotate来完成的,以centos7为例配置通常在/etc/logrotate.d 目录下 添加 nginx 文件 cat nginx /var/log/ ...

  5. 【转载】45个设计师们不常见的html5和css3漂亮模板

    对于Web开发人员来说,当他们需要创建一个非常时尚和新潮的CSS3和HTML5网站时需要非常专业的水准.html5和css3的结合能够做出非同寻常的网站效果..所以,今天,我推荐给大家45个免费的时尚 ...

  6. spark on yarn模式下配置spark-sql访问hive元数据

    spark on yarn模式下配置spark-sql访问hive元数据 目的:在spark on yarn模式下,执行spark-sql访问hive的元数据.并对比一下spark-sql 和hive ...

  7. jenkin+docker+git持续集成环境搭建

    1.安装Jenkins(需要在Jenkins容器中安装maven,java环境不用安装,Jenkins初次启动时会自动安装) 参考:docker中安装Jenkins 2.配置git 3.安装docke ...

  8. shell查找进程并终止

    创建kill.sh文件,内容如下: port= #一.根据端口号查询对应的pid,两种都行 pid=$(netstat -nlp | grep :$port | awk '{print $7}' | ...

  9. [ruby]rubyGem出现ERROR: Could not find a valid gem时的处理方法

    场景: 想安装SASS的时候,打开cmd,输入gem install sass的时候却出现了: ERROR:  Could not find a valid gem 'sass' (>= 0), ...

  10. 在Windows Server 2008上部署免费的https证书

    背景 后web时代,https加密的重要性不言而喻.主流浏览器均对http站点标记不安全,敦促web服务提供商尽快升级至https. 原先的https证书多由各大域名服务商提供,动辄成千上万的部署证书 ...