IDEA WEB项目 TOMCAT启动 报错

本文指导如何通过分析Tomcat错误日志找出问题根源,重点讲述了一个关于数据库访问权限导致的`AccessDenied`错误,通过排查和调整数据库权限解决web应用启动失败。关键词:Tomcat, JDBC, 数据库权限, 本地连接, root用户, MySQL
摘要由CSDN通过智能技术生成

错误信息: 一个或多个listeners启动失败、但在Web应用程序停止时无法注销它、 为防止内存泄漏,JDBC驱动程序已被强制取消注册、至少有一个JAR被扫描用于TLD但尚未包含TLD…

上面的报错信息,几乎会不是出现这个就是那个,但是如果看这个你就误入歧途了。首先我们明确这是谁报的错?

1.找到真正出错的地方

上面的错误是谁报的?这里以idea2020.1为例,在用tomcat启动maven构建的web项目时,报错的。但是控制台有三小块,分别是server、tomcat loclhost log、tomcat catalina log,我们看截图
在这里插入图片描述
上面的错是 tomcat catalina log 输出的,也就是错误出现在tomacat容器本身。我们的tomcat如果自己不去乱改,一般不会有问题,顶多是版本不兼容问题,这个很容易判断,是不是tomcat本身的问题。一般不是哈~~
说到这里,我们自然会想到第二块tomcat localhost log 这里有什么呢?tomcat localhost log输出的是,本地tomcat容器中的web程序的报错,这里的错才是真正的错误,解决这里的错误才能真正解决问题。点击可以看到是不是也报错?这就对了,(哈哈,一般这里报错,tomcat本身多半会受影响而报错。)

2.确定真正报错原因后,解决问题就so easy !

我此次tomcat localhost log 的报错信息如下,我只复制了最根本的原因:Access denied for user ‘root’@‘OS-20191119PYDJ’ (using password),其实前面还有啥 “Error creating bean with name ‘sqlSessionFactory’ defined in class path reso”,这不是根本错误,别想着改spring-context配置文件,没用。解决根上的问题才一针见血。
这个错误其实就是无权访问数据库,是数据库权限的问题
然后我就猛地想起,我之前重装了本地的数据库。创建数据库用户时候,授权都是仅能本地访问,远程不行。而我的web程序中访问数据库的jdbc.url 是局域网ip,类似于192.168.6.28:3306这种,这种数据库会默认为远程连接,但是我是没有远程访问的权限的。好啦,至此,问题清清楚楚

3.修改root用户权限。

登录本地数据库服务器,进去mysql数据库,执行 select user,host from user;可以看看自己创建的数据库用户
在这里插入图片描述

可以看到,root只有本地访问权限。现在授权远程访问权限即可,grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;然后刷新权限 flush privileges;

4.再次启动tamcat的web应用,爽!三天都没解决的问题,真是靠自己解决了~~~~

本帖子并不能解决所有问题,但是本帖子告诉了你问题真正的原因怎么找,授人以鱼不如授人以渔!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值