如何解决MySQL报错:ERROR 1193 (HY000): Unknown system variable ‘tx_isolation‘

  MySQL中使用事务需要查询当前会话或者当前系统隔离级别的时候使用命令行 select @@global.tx_isolation;会出现下列报错信息:

ERROR 1193 (HY000): Unknown system variable 'tx_isolation'

旧版 MySQL用的是 tx_isolation,新版 MySQL只需把 tx 改为 transaction 就好

查看全局隔离权限语句:

select @@global.transaction_isolation;
show variables like 'transaction_isolation';
mysql> select @@global.transaction_isolation;
+--------------------------------+
| @@global.transaction_isolation |
+--------------------------------+
| REPEATABLE-READ                |
+--------------------------------+
1 row in set (0.00 sec)

mysql> show variables like 'transaction_isolation';
+-----------------------+-----------------+
| Variable_name         | Value           |
+-----------------------+-----------------+
| transaction_isolation | REPEATABLE-READ |
+-----------------------+-----------------+
1 row in set, 9 warnings (0.01 sec)

查看当前会话隔离权限

select @@transaction_isolation;
select @@session.transaction_isolation;
mysql> select @@transaction_isolation;
+-------------------------+
| @@transaction_isolation |
+-------------------------+
| REPEATABLE-READ         |
+-------------------------+
1 row in set (0.00 sec)

mysql> select @@session.transaction_isolation;
+---------------------------------+
| @@session.transaction_isolation |
+---------------------------------+
| REPEATABLE-READ                 |
+---------------------------------+
1 row in set (0.00 sec)

指定 global 关键字是可以修改全局的设置,修改后需要新建连接或事务才会起效

而指定 session 只修改当前连接会话的隔离级别,修改完后立即生效,再次连接后会跟回全局的设置,对其他连接/会话也不起作用

如果不指定是 global 还是 session,则本次连接当前事务的隔离级别不会被改,要到下一个(尚未启动的)新事务才起作用,下一个事务结束后,又将恢复成本次 session 中原先的设置

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值