java - 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 数据库。
解决方案
推荐阅读
- react-native - 无法在 React-native 中将调试器附加到 chrome,出现未经授权的错误
- python - Force Pillow 生成 TrueColor 类型的图像,而我只使用黑白
- android - 如何使用导航架构组件在另一个 Activity 上显示向上按钮
- laravel - Laravel 删除 Cookie
- javascript - 前端应用 Graphql 请求被 Safari、Firefox 阻止,但 Heroku 上的 Chrome 没有阻止
- node.js - TypeError:无法读取未定义的属性“substr”
- python - 如何从 matplotlib 中的文本文件中绘制特定范围的值
- php - 重新加载php脚本时输入文本字段中空格字符后的文本被切断
- google-apps-script - 消息提示未在移动设备上显示
- node.js - 使用 nodejs 将数据发布到 odoo