Unknown system variable ‘transaction_isolation‘

具体问题

最近用DBeaver连接Mysql报Unknown system variable 'transaction_isolation'

具体分析

容我们来逐帧分析-DBeaver是一个免费的跨平台数据库连接工具;

其次我们得先有一个概念:transaction_isolation是MySQL中用来设置数据库事务的隔离级别的一个系统变量;在MySQL中,事务隔离级别决定了一个事务对其他事务的可见性以及并发操作时可能出现的问题。

常见的事务隔离级别包括:

  1. 读未提交(Read Uncommitted):一个事务可以读取另一个事务未提交的数据。

  2. 读已提交(Read Committed):一个事务只能读取另一个事务已经提交的数据。

  3. 可重复读(Repeatable Read):确保在同一事务中多次读取相同数据时,结果始终一致。

  4. 序列化(Serializable):最高的隔离级别,通过强制事务进行串行化顺序执行,避免了幻读和不可重复读的问题。

通过设置transaction_isolation变量,你可以指定所需的隔离级别,以满足你的应用程序的需求,并确保数据的一致性和可靠性。

下面是transaction_isolation和tx_isolation的恩怨情仇:

MySQL在5.7.20版本之前是使用tx_isolation作为事务隔离级别的一个系统变量,但是在5.7.20版本后引入了transaction_isolation作为别名被引入,甚至到了MySQL 8.0版本直接取代了tx_isolation。

所以现在知道为啥报错了吧——

  • 当前的MySQL版本太低了,以至于transaction_isolation还未被MySQL引入,结果当然是Unknown;

  • 驱动版本太高也会报Unknown system variable 'transaction_isolation'

个人实测 MySQL版本:10.8.3;驱动版本mysql-connector-java:6.0.5可以正常运行

具体解决

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值