连接MariaDB时出现java.util.ConcurrentModificationException及连接失败问题
问题:连接MariaDB时数据库连接失败
需求:成功连接数据库
错误日志
HHH000342: 无法获取连接以查询元数据
连接池初始化失败: nullHHH000400: 使用方言: org.hibernate.dialect.MySQL5InnoDBDialect
Hibernate: drop table if exists customers
HikariPool-1 - 连接池初始化期间发生异常。java.util.ConcurrentModificationException: null
解决方案
- 排查HikariCP配置的并发修改问题:确保连接池配置对象在单线程环境下完成所有参数设置后,再初始化
HikariDataSource,避免多线程同时修改配置。 - 验证驱动与框架版本兼容性:使用MariaDB官方驱动
mariadb-java-client,确认其版本与HikariCP、Hibernate版本匹配,避免版本冲突引发异常。 - 核对数据库连接参数:检查JDBC URL格式(示例:
jdbc:mariadb://localhost:3306/your_db?useSSL=false&serverTimezone=Asia/Shanghai)、用户名、密码是否正确,同时确认MariaDB服务正常运行、端口对外开放。 - 避免连接池初始化时的并发操作:确保连接池完全初始化完成后,再执行数据库查询、表操作等逻辑,禁止在初始化过程中让其他线程尝试获取连接。
- 清理依赖冲突:通过Maven/Gradle生成依赖树,排查是否存在重复的JDBC驱动或连接池相关依赖,移除冗余或冲突的依赖包。
内容的提问来源于stack exchange,提问作者Vamshi K
相关产品推荐
相关产品推荐

