You need to enable JavaScript to run this app. Java Web连接MariaDB Galera集群无法获取JDBC连接如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Java Web连接MariaDB Galera集群无法获取JDBC连接如何解决

解决方案

根因说明

你当前引入的是MariaDB官方驱动,但JNDI数据源配置中填写的是MySQL JDBC驱动类名,MariaDB驱动包中不存在该类,因此抛出类不存在异常。

具体修复步骤

  • 第一步:修改Tomcat context.xml中的数据源配置,将driverClassName参数的值替换为MariaDB 1.x版本对应的驱动类名org.mariadb.jdbc.Driver
    修改后的资源配置参考如下:
<Resource auth="Container" 
driverClassName="org.mariadb.jdbc.Driver" 
maxIdle="100" maxTotal="100" 
name="jdbc/dbExample" 
password="dbpass" 
type="javax.sql.DataSource" 
url="jdbc:mariadb:sequential://192.1.1.12,192.1.1.13,192.1.1.14:3306/dbExample" 
username="dbuser"/>
  • 第二步:确认MariaDB驱动包的加载路径
    因为你使用的是Tomcat容器管理的JNDI数据源,数据源初始化在项目加载前执行,所以需要将mariadb-java-client-1.7.6.jar放入Tomcat安装目录的lib文件夹下,避免容器初始化数据源时无法找到驱动类。如果仅将依赖配置在项目pom中,驱动包只会打入项目WEB-INF/lib目录,容器初始化阶段无法加载。

可选方案(不推荐)

如果你坚持要保留com.mysql.jdbc.Driver的配置,可在pom中额外引入MySQL JDBC驱动依赖:

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.49</version>
</dependency>

但该方案会导致MariaDB特有的URL参数(如你配置的sequential集群模式)无法被正确识别,因此不推荐使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 03:03:01