gpt4 book ai didi

MySQL Workbench 和默认 session 隔离级别

转载 作者:可可西里 更新时间:2023-11-01 08:47:14 27 4
gpt4 key购买 nike

我有一个 MySQL workbench 6.0 CE 的问题,我将尽可能详细地描述它:

MySQL Workbench 总是将我的 session 变量 @@tx_isolation 设置为 "REPEATABLE READ" 并且更改此变量的唯一方法是使用 SET tx_isolation='READ -已提交';.

我想要的是,当我启动工作台时,tx_isolation 的默认 session 变量是 'READ-COMMITTED' 而不是 'REPEATABLE-READ';是的,我已经更改了全局变量 tx_isolation 并且它是 'READ-COMMITTED' 但 session 一不是。

Ej:

SELECT @@Global.tx_isolation, @@tx_isolation;

分别返回:'READ-COMMITTED', 'REPEATABLE-READ'

注意:如果我在 MySQL 命令行中查询与上面相同的代码,两个变量都设置为 'READ-COMMITTED',这就是为什么我认为这是一个问题使用 MySQL Workbench 而不是服务器。

感谢您的帮助。

最佳答案

这是一个老问题,但我仍然有同样的错误。

根据文档(https://dev.mysql.com/doc/refman/5.7/en/innodb-transaction-isolation-levels.html#isolevel_repeatable-read),默认隔离级别为可重复读取。

这意味着数据库的快照是在事务的第一次读取时创建的。每次读取此事务都会向您显示快照的数据。

因此您需要结束事务(提交或回滚)以在下一次读取时获得新的快照。

我在 AutoCommit 上设置 MySQL Workbench 的同事没有看到可重复读取行为。我们发现这是因为在每次 SELECT 之后,事务都会关闭并创建一个新的快照。

因此,由于错误仍未得到纠正(正如 Sithsu 提到的那样),解决方法是:

  • 切换到自动提交以自动创建新快照
  • 或在每次 SELECT 后提交/回滚以创建新快照

关于MySQL Workbench 和默认 session 隔离级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25268782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com