项目场景:springboot+mybatis+mysql启动的时候,报错:java.sql.SQLException: Unknown system variable ‘tx_isolation’
问题描述:
服务启动后,先是正常的,后面开始报错,
java.sql.SQLException: Unknown system variable ‘tx_isolation’
原因分析:
报错的行列里面有,‘mysql-connector-java 5.1.6’,我一看数据库的版本是8.0.20,所以想版本上是否不一致,将jar包的版本升级至8.0.20与数据库的版本一致。再次启动,无果。无效。
再次看了下报错信息,没有’tx_isolation’,去数据库查了下,是数据库的事务隔离级别
命令:SHOW VARIABLES LIKE ‘tx_isolation’
结果为空:
Variable_name | Value |
---|---|
null | null |
查了下发现,8.0.x后面是没有‘tx_isolation’的,改为了‘ transaction_isolation’,接着改了命令继续看
命令:SHOW VARIABLES LIKE ‘transaction_isolation’
结果:
Variable_name | Value |
---|---|
transaction_isolation | REPEATABLE-READ |
可重复读:REPEATABLE-READ,Mysql 8.0.20的默认事务隔离级别
解决方案:
1.命令:SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
更改事务的隔离级别
2.重启数据库
3.SHOW VARIABLES LIKE ‘transaction_isolation’
查看下Value是不是改为了read committed
提交读:READ COMMITTED