java项目连接jboss中数据库,JAVA应用程序(Tomcat和Jboss)与mysql数据库连接异常(localhost与127.0.0.1)...

JAVA应用程序(Tomcat和Jboss)与mysql数据库连接异常(localhost与127.0.0.1)

一.环境描述

(1)系统版本: CentOS release 6.5 (Final)

(2)内核版本: 2.6.32-431.el6.x86_64

(4)jdk版本: java -version

java version "1.7.0_09"

Java(TM) SE Runtime Environment (build1.7.0_09-b05)

Java HotSpot(TM) 64-Bit Server VM(build 23.5-b02, mixed mode)

(5)jboss版本: jboss-as-7.1.1.Final

(6)数据库版本: 5.1.71

二.故障现象描述

(1)JBOSS通过jdbc.properties与数据库连接

jdbc.properties的相关内容:

jdbc.url=jdbc:mysql://localhost/abf?useUnicode=true&characterEncoding=UTF-8

jdbc.username=root

jdbc.password=123456

简单来说,就是jboss通过连接本机(localhost)上的mysql来访问mysql数据库

用户名为root,密码也是root

(2)当JBOSS执行启动命令后

通过浏览器访问WEB应用程序总是失败

(3)mysql数据库的user数据表内容如下:

mysql>select host,user,password from mysql.user;

+------------------+------+--------------------------------------------------------------------------------+

| host             | user | password                                  |

+------------------+------+--------------------------------------------------------------------------------+

| localhost       | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B|

| master.mysql.com | root |                                            |

| 127.0.0.1        | root |                                            |

| localhost        |     |                                           |

| master.mysql.com |      |                                           |

+------------------+------+----------------------------------------------------------------------------------+

注意:这里localhost ,root,的密码是123456

三.问题分析

(1)JBOSS能过配置文件jdbc.properties,使用localhost, root,123456这3个参数连接mysql

(2)mysql中user表里包括了localhost,root, 123456这个账户

按理说, JBOSS访问mysql数据库应该没有问题,但是有3个地方要注意

a.通常情况下,无论windows还是linux系统,名词localhost等价于127.0.0.1 ,但在本文所描述的场景中他们并不等价

b.在mysql的概念里 root@localhost账号与root@127.0.0.1是两个完全不同的账号

c.尽管在jdbc.properties中设置使用localhost来访问本机mysql,但JBOSS并不使用root@localhost来访问mysql数据库,而是用root@127.0.0.1来访问本机mysql

四.解决方案

1.在mysql中为127.0.0.1主机增加账号

mysql -uroot -proot

mysql>grant all on *.* to 'root'@'127.0.0.1' identified by '123456';

mysql>flush privileges;

注1:这里只是个示例,应该为root@127.0.0.1分配何种权限,根据实际需要操作

注2:如果想清除账号: root'@'127.0.0.1的密码,只需要执行下面的步骤:

mysql>grant all on *.* to 'root'@'127.0.0.1' identified by '';

mysql>flush privileges;

2.验证操作成功

mysql>select host,user,password from mysql.user;

+------------------+------+-------------------------------------------+

|host             | user | password                                  |

+------------------+------+-------------------------------------------+

|localhost        | root |*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |

|master.mysql.com | root |                                           |

|127.0.0.1        | root |*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |

|localhost        |      |                                           |

|master.mysql.com |      |                                           |

+------------------+------+-------------------------------------------+

已经成功为127.0.0.1设置了密码: 123456

3.此时再启动JBOSS则不会报错,应用可以正常访问

注: 本文描述JBOSS与 mysql连接异常,同样的问题在Tomcat环境中也在在,处理方式相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值