MySQL-事务专题-修复数据库默认隔离级别
1、修复数据库默认隔离级别
隔离级别控制 https://blog.csdn.net/qq_40687433/article/details/114262238 rr模式是否会造成幻读? 答案是不会。
mysql 隔离级别
环境1的
SHOW VARIABLES LIKE "tx_isolation"; -- select @@tx_isolation;
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| tx_isolation | REPEATABLE-READ |
+---------------+-----------------+
1 row in set (0.00 sec)
环境2的
SHOW VARIABLES LIKE "tx_isolation"; -- select @@tx_isolation;
+---------------+----------------+
| Variable_name | Value |
+---------------+----------------+
| tx_isolation | READ-COMMITTED |
+---------------+----------------+
transaction_isolation tx_isolation :
从 5.7.20 版本开始,transaction_isolation 作为 tx_isolation 的别名被引入,而 tx_isolation 在 8.0 版本后被废弃了,应用应该使用 transaction_isolation,而非 tx_isolation。
SHOW VARIABLES LIKE "%isolation%"; 所以可以两个都查一下
如果再出现锁表,改成和公有云一样:
SET session TRANSACTION ISOLATION LEVEL READ-COMMITTED;(这个仅仅是当前的session ,参数可以为:Read uncommitted,Read committed,Repeatable,Serializable) https://www.likecs.com/show-204278453.html
set global transaction_isolation='READ-COMMITTED';
set global tx_isolation='READ-COMMITTED';
以上显示成功,但是再次查询还是原来的值,是因为对已连接的会话没有影响。需要重新打开个navicat端口
#隔离级别数字配置的含义:
#-1 数据库默认隔离级别
#1 未提交读 READ UNCOMMITTED
#2 读写提交 READ COMMITTED
#4 可重复读 REPEATABLE READ
#8 串行化 SERIALIZABLE