【问题标题】:Isolation Level Change in MySQLMySQL 中的隔离级别更改
【发布时间】:2016-06-15 05:25:56
【问题描述】:

我的系统上安装了 MySQL 5.7,它设置了默认事务隔离级别“REPEATABLE-READ”。我的场景需要“READ-COMMITTED”。所以我更改了配置文件中的隔离级别,以便我可以将“READ-COMMITTED”作为默认值。

是的,在将其添加到配置文件时,我可以看到隔离级别在全局级别发生了更改,但在会话级别仍然是“REPEATABLE-READ”。我认为一旦我重新启动服务器,文件中的任何更改都应该在全局和会话级别之间进行设置。但这并没有改变。

请帮我解决这个问题。

【问题讨论】:

  • 你是如何连接到数据库的?您的脚本/库不是在连接时设置会话变量吗?
  • @Marki555 不,他们没有。我只想知道为什么编辑配置文件时值没有改变
  • 如果show global variables like 'tx_isolation'; 显示正确的值,那么您的配置工作正常。您也可以通过mysql --verbose --help|grep isolation 进行检查 - 它会显示 mysqld 在启动时使用的值。
  • @Marki555 是的。但是,如果我为新会话执行show session variables like 'tx_isolation';,默认情况下我会看到“REPEATABLE-READ”。我们不能改变吗?
  • 通过mysql命令行客户端连接时也会出现这种情况吗?

标签: mysql transactions transaction-isolation


【解决方案1】:

以下设置查询在 sessionglobal 中也适用于我。

SET GLOBAL tx_isolation='READ-COMMITTED'

当我再次使用以下查询检查级别时,它将返回更新后的值。

选择@@global.tx_isolation,@@tx_isolation;

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 2011-09-09
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多