You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat 10.0.27无法通过JDBC连接MySQL数据库问题求助

Tomcat 10.0.27 无法通过JDBC连接MySQL数据库

本地Tomcat服务器无法识别MySQL数据库,使用Tomcat 10.0.27,已引入MySQL Connector 8.0.28.jar、tomcat-dbcp-java-9.0.58.jar和tomcat-juil-9.0.58.jar,但问题依旧。

问题截图:问题截图

当前配置文件

META-INF/context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource
            name="jdbc/MySQLDataBase" type="javax.sql.DataSource"
            maxActive="100" maxIdle="30" maxWait="10000"
            url="jdbc:mysql://localhost:3306/MySQLDataBase"
            driverClassName="com.mysql.jdbc.Driver"
            username="***" password="***"
    />
</Context>

WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">
    <resource-env-ref>
        <resource-env-ref-name>jdbc/MySQLDataBase</resource-env-ref-name>
        <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
    </resource-env-ref>
</web-app>

问题排查与修复步骤

1. 更新MySQL驱动类名

MySQL Connector/J 8.0的驱动类已更新为com.mysql.cj.jdbc.Driver,替换context.xml中的旧类名:

driverClassName="com.mysql.cj.jdbc.Driver"

2. 完善JDBC URL参数

MySQL 8.0强制要求时区配置,添加必要参数:

url="jdbc:mysql://localhost:3306/MySQLDataBase?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"

根据实际时区调整serverTimezone,比如UTC。

3. 移除不兼容依赖

Tomcat 10自带连接池实现,tomcat-dbcp-java-9.0.58.jar和tomcat-juil-9.0.58.jar是Tomcat 9的组件,与Tomcat 10存在类冲突,直接删除这两个文件。

4. 调整驱动包放置位置

将MySQL Connector/J 8.0.28.jar放到Tomcat安装目录/lib下,不要放在项目WEB-INF/lib,避免类加载冲突。

5. 适配Jakarta EE命名空间

Tomcat 10使用Jakarta EE API,将javax.sql.DataSource替换为jakarta.sql.DataSource:

  • 修改context.xml的type属性:
type="jakarta.sql.DataSource"
  • 修改web.xml的resource-env-ref-type:
<resource-env-ref-type>jakarta.sql.DataSource</resource-env-ref-type>

6. 验证基础连接信息

确认:

  • MySQL服务正常运行在3306端口
  • 数据库MySQLDataBase已创建
  • 配置的用户名/密码正确,且拥有该数据库的访问权限

内容的提问来源于stack exchange,提问作者OLEGA_zz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 18:27:46