我有一个应用程序,用户可以在其中选择任何类型和版本的数据库(相关的),提供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数据库。