首页 > 解决方案 > HikariCp 池获取未知系统变量“tx_isolation”异常

问题描述

我有一个应用程序,用户可以选择任何类型和版本的数据库(关系)提供 URL、用户名、密码并创建数据源,连接到数据库,然后运行 ​​SELECT 查询。要连接数据库,我将 HikariCp 用于我的连接池(在我使用 DBCP2 作为连接超时之前我更改为 HikariCp)。这是我的配置

HikariConfig config = new HikariConfig();       
config.setDriverClassName(StringUtils.trimToEmpty(driver));      
config.setJdbcUrl(StringUtils.trimToEmpty(url));
config.setUsername(username);
config.setPassword(password);       
config.setMaximumPoolSize(POOL_MAX_ACTIVE);
config.setMinimumIdle(POOL_INITIAL_SIZE);        
config.setConnectionTestQuery(validationQuery);      
config.setConnectionTimeout(TimeUnit.SECONDS.toMillis(jdbcTimeout));    
HikariDataSource dataSource = new HikariDataSource(config);
Connection connection = dataSource.getConnection();     

当我尝试连接 MYsql 数据库时,出现以下错误:

HikariPool-8 - Starting... 
2019-04-10  18:45:49  WARN com.zaxxer.hikari.pool.PoolBase:472 - ReqId:60a79ef60413424e96a4fa73010fc861 - HikariPool-8 - Default transaction isolation level detection failed ((conn=14) Unknown system variable 'tx_isolation'). 
2019-04-10  18:45:49 ERROR com.zaxxer.hikari.pool.HikariPool:574 - ReqId:60a79ef60413424e96a4fa73010fc861 - HikariPool-8 - Exception during pool initialization. 
java.sql.SQLException: (conn=14) Unknown system variable 'tx_isolation'
at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:198)
at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:110)

配置有什么问题?使用 DBCP2 它工作正常

我正在使用 mariadb-java-client,版本:'2.2.1' 驱动程序连接到 Mysql 数据库。

标签: javahikaricp

解决方案


推荐阅读