Tomcat容器通过JDBC连接MySQL容器时出现500错误求助
问题排查与修复建议
1. 修正JDBC驱动类名
你使用的是MySQL Connector/J 8.0.31,该版本的驱动类名已更新为com.mysql.cj.jdbc.Driver,而非配置里的com.mysql.jdbc.Driver(这是MySQL 5.x版本的驱动类名)。修改tomcat/conf/context.xml中的driverClassName参数:
driverClassName="com.mysql.cj.jdbc.Driver"
2. 补充JDBC URL必要参数
MySQL 8.0+版本强制要求指定时区,否则会抛出时区相关异常。同时建议添加开发环境常用参数,更新URL配置:
url="jdbc:mysql://mysql-container:3306/dbname?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true"
3. 清理驱动包冲突
你同时采用了两种驱动安装方式(放入jar包到tomcat/lib+安装rpm包),可能导致类路径冲突。建议:
- 卸载rpm包:
sudo rpm -e mysql-connector-j-8.0.31-1.el7.noarch - 确认
tomcat/lib下仅保留mysql-connector-j-8.0.31.jar,无其他版本的MySQL驱动jar - 重启Tomcat容器
4. 验证数据库基础配置
- 确认MySQL容器内已创建
dbname数据库 - 确认用户名
username和密码password拥有该数据库的读写权限 - 进入MySQL容器执行命令验证:
mysql -u username -p password -D dbname,检查是否能正常登录并访问数据库
5. 查看Tomcat日志定位具体错误
500错误的核心原因必须通过日志排查,查看Tomcat容器内的日志文件:
tomcat/logs/catalina.out:包含完整的异常栈信息,能直接显示连接失败的具体原因(如驱动找不到、权限错误、库不存在等)tomcat/logs/localhost.log:记录Web应用的运行日志,可辅助定位接口调用时的异常
内容的提问来源于stack exchange,提问作者yuko mizuki
相关产品推荐
相关产品推荐

