我在使用 MySQL Workbench 6.0 CE 时遇到了问题,我将尽可能解释地描述它:
MySQL Workbench 总是设置我的会话变量@@tx_isolation
to "REPEATABLE READ"
改变这个变量的唯一方法是使用SET tx_isolation='READ-COMMITTED';
.
我想要的是,当我启动工作台时,默认会话变量为tx_isolation
is 'READ-COMMITTED'
并不是'REPEATABLE-READ'
;是的,我已经改变了全局变量tx_isolation
这是'READ-COMMITTED'
但第一场会议不是。
Ej:
SELECT @@Global.tx_isolation, @@tx_isolation;
返回:'READ-COMMITTED'
, 'REPEATABLE-READ'
分别。
Note:如果我在 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 之后提交/回滚以创建新快照
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)