在MySQL中设置隔离级别
引入:
因为用的是MySQL8.0,在学习设置隔离级别时,与教程上的5.7的设置方法都对应不上,为此在网上搜了很多资料,而且都不是很全面,故耗费了很多时间,现在将5.7与8.0版本的都罗列出来,供需要的人进行参考,所有的代码全部亲测有效!
具体设置情况:
-
创建mysql数据库的用户,并授予权限
// 1. MySQL5.7之前: // 1.1 创建mysql数据库的用户 create user 新建用户名 identified by '新建用户密码'; // 1.2 给新建用户授予在指定数据库下的所有表的增删改查的权限 grant select,insert,delete,update on 数据库名.* to 新建用户@localhost identified by '新用户密码'; // 1.3 给新建用户对于所有库所有表的全部权限 grant all privileges on *.* to 新建用户名@'%' identified by 'abc123'; // 2. MySQL8.0之后: // 2.1 创建mysql数据库的用户 create user 新建用户名@localhost identified by '新建用户密码'; // 2.2 给新建用户授予在指定数据库下的所有表的增删改查的权限 grant select,insert,delete,update on 数据库名.* to 新建用户@localhost; // 2.3 给新建用户对于所有库所有表的全部权限 grant all privileges on *.* to 新建用户名@localhost;
-
查看当前的隔离级别
// MySQL5.7之前 select @@tx_isolation; // MySQL8.0之后 select @@transaction_isolation;
-
设置当前mysql连接的隔离级别
// MySQL5.7之前 set transaction isolation level read committed; // MySQL8.0之后 set session transaction isolation level read committed;
-
设置数据库系统的全局的隔离级别
// 会改变该数据库系统下的所有用户的隔离级别 set global transaction isolation level read committed;