那么,grant 之后真的需要执行 flush privileges 吗?如果没有执行这个 flush 命令的话,赋权语句真的不能生效吗?
接下来,我们介绍一下 grant 语句和 flush privileges 语句分别做了什么事情,然后再一起来分析这个问题。
为了便于说明,先创建一个用户:
这条语句的逻辑是创建一个用户’ua’@’%’,密码是 pa。注意,在 MySQL 里面,用户名 (user)+ 地址 (host) 才表示一个用户,因此 ua@ip1 和 ua@ip2 代表的是两个不同的用户。这条命令做了两个动作:
在 MySQL 中,用户权限是有不同的范围的。接下来,我们按照用户权限范围从大到小的顺序依次说明。
MYSQL 事务处理主要有两种方法
1、用 begin, rollback, commit 来实现
begin 或/ start transaction )开始一个事务
rollback 事务回滚
commit 事务确认
2、直接用 SET 来改变 MySQL 的自动提交模式:
set autocommit=0 禁止自动提交
set autocommit=1 开启自动提交
1.不管 autocommit 是1还是0
start transaction 后,只有当 commit 数据才会生效, rollback 后就会回滚。
2、当 autocommit 为 0 时
不管有没有 start transaction .
只有当 commit 数据才会生效, rollback 后就会回滚。
3、如果 autocommit 为1 ,并且没有 start transaction .
调用 rollback 是没有用的。因为事务已经自动提交了。
事务测试1
事务测试2
flag 相当一定义这个保存点的名字
savepoint flag : savepoint 允许在事务中创建一个保存点,一个事务中可以有多个savepoint ;
release savepoint flag :删除一个事务的保存点,当没有指定的保存点时,执行该语句会抛出一个异常;
rollback to flag :把事务回滚到标记点;
set transaction :用来设置事务的隔离级别。InnoDB存储引擎提供事务的隔离级别有
READ UNCOMMITTED 、 READ COMMITTED 、 REPEATABLE READ 和 SERIALIZABLE
select @@transaction_isolation
SELECT @@SESSION.transaction_isolation, @@SESSION.transaction_read_only
在MySQL中,常见的过程式SQL语句可以用在一个存储过程体中。其中包括:IF语句、CASE语句、LOOP语句、WHILE语句、REPEAT语句、LEAVE语句和ITERATE语句,它们可以进行流程控制。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)