千家信息网

怎么在MySQL中查看和修改事务隔离级别

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天就跟大家聊聊有关怎么在MySQL中查看和修改事务隔离级别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。查看事务隔离级别在 MySQL 中,
千家信息网最后更新 2026年11月01日怎么在MySQL中查看和修改事务隔离级别

今天就跟大家聊聊有关怎么在MySQL中查看和修改事务隔离级别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

查看事务隔离级别

在 MySQL 中,可以通过show variables like '%tx_isolation%'或select @@tx_isolation;语句来查看当前事务隔离级别。

查看当前事务隔离级别的 SQL 语句和运行结果如下:

mysql> show variables like '%tx_isolation%';+---------------+-----------------+| Variable_name | Value      |+---------------+-----------------+| tx_isolation | REPEATABLE-READ |+---------------+-----------------+1 row in set, 1 warning (0.17 sec)mysql> select @@tx_isolation;+-----------------+| @@tx_isolation |+-----------------+| REPEATABLE-READ |+-----------------+1 row in set, 1 warning (0.00 sec)

结果显示,目前 MySQL 的事务隔离级别是 REPEATABLE-READ。

另外,还可以使用下列语句分别查询全局和会话的事务隔离级别:

SELECT @@global.tx_isolation;SELECT @@session.tx_isolation;

提示:在MySQL 8.0.3 中,tx_isolation 变量被 transaction_isolation 变量替换了。在 MySQL 8.0.3 版本中查询事务隔离级别,只要把上述查询语句中的 tx_isolation 变量替换成 transaction_isolation 变量即可。

修改事务隔离级别

MySQL 提供了 SET TRANSACTION 语句,该语句可以改变单个会话或全局的事务隔离级别。语法格式如下:

SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}

其中,SESSION 和 GLOBAL 关键字用来指定修改的事务隔离级别的范围:

  • SESSION:表示修改的事务隔离级别将应用于当前 session(当前 cmd 窗口)内的所有事务;

  • GLOBAL:表示修改的事务隔离级别将应用于所有 session(全局)中的所有事务,且当前已经存在的 session 不受影响;

  • 如果省略 SESSION 和 GLOBAL,表示修改的事务隔离级别将应用于当前 session 内的下一个还未开始的事务。

任何用户都能改变会话的事务隔离级别,但是只有拥有 SUPER 权限的用户才能改变全局的事务隔离级别。

如果使用普通用户修改全局事务隔离级别,就会提示需要超级权限才能执行此操作的错误信息,SQL 语句和运行结果如下:

C:\Users\leovo>mysql -utestuser -pEnter password: ******Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 41Server version: 5.7.29-log MySQL Community Server (GPL) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operationmysql> SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;Query OK, 0 rows affected (0.00 sec)

示例 1

使用 SET TRANSACTION 语句分别修改 session 和全局的事务隔离级别SQL 语句和运行结果如下:

mysql> select @@session.tx_isolation;+------------------------+| @@session.tx_isolation |+------------------------+| SERIALIZABLE      |+------------------------+1 row in set, 1 warning (0.00 sec)mysql> SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ;Query OK, 0 rows affected (0.00 sec)mysql> select @@global.tx_isolation;+-----------------------+| @@global.tx_isolation |+-----------------------+| REPEATABLE-READ    |+-----------------------+1 row in set, 1 warning (0.00 sec)

还可以使用 set tx_isolation 命令直接修改当前 session 的事务隔离级别,SQL 语句和运行结果如下:

mysql> set tx_isolation='READ-COMMITTED';Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> select @@session.tx_isolation;+------------------------+| @@session.tx_isolation |+------------------------+| READ-COMMITTED     |+------------------------+1 row in set, 1 warning (0.00 sec)

知识点补充

Mysql事务隔离级别之读提交流程图

看完上述内容,你们对怎么在MySQL中查看和修改事务隔离级别有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

事务 级别 隔离 语句 全局 结果 变量 运行 内容 用户 应用 查询 权限 知识 提示 普通 信息 关键 关键字 单个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云信互联网科技有限公司 世界互联网领先科技成果 南京欣网互联网科技 融势互联网科技 菲比寻常互联网科技 互联网科技英文翻译 重庆科技学院互联网 互联网科技素材视频竖屏 中国最先进互联网科技公司 智腾互联网科技有限公司 允成互联网科技有限公司融资 企晟互联网信息科技有限公司 阿里互联网科技企业 为客找房互联网科技公司怎么样 广州百诚互联网科技有限公司官网 有人说阿里系是互联网科技企业 互联网科技包装股 互联网科技接地气 保山互联网科技靠谱吗 盐城市攀科互联网科技有限公司 科技股互联网 中国互联网科技股 互联网公司 科技公司 互联网科技的英文 汉立互联网科技有限公司联系电话 宜昌元轩互联网科技有限公司 怎样加入科技互联网 杭州披云加互联网科技有限公司 山东大美朱楼互联网科技有限公司 全球科技与互联网公司市值变化
0