MySQL快速入门3

本文详细介绍了事务的原子性、持久性、隔离性和一致性,展示了MySQL事务的控制方法,包括自动提交和手动提交,以及不同隔离级别的概念和应用场景。同时涵盖了用户管理和权限管理的关键操作,如创建用户、修改密码、授权和撤销权限。
摘要由CSDN通过智能技术生成

事务

  • 概述:若一个包含多个步骤的业务操作被事务管理,那么这些操作要么同时成功,要么同时失败。
  • 操作流程:
    1. 开启事务:start transaction;
    2. 回滚:rollback;
    3. 提交:commit;
  • 事务提交方式
    • 自动提交:一条DML增删改语句会自动提交一次事务,MySQL属于自动提交
    • 手动提交:即上面的操作流程,Oracle默认手动
    • 修改默认提交方式:
      • 查看:select @@commit;#0代表手动提交,1代表自动
      • 设置:set @@commit = 0/1;
  • 事务的四大特性
    1. 原子性:是不可分割的最小操作单位,即同时成功或失败
    2. 持久性:当事务提交或回滚后,数据库会持久化的保存数据
    3. 隔离性:多个事务之间相互独立
    4. 一致性:事务操作前后,数据总量不变
  • 事务隔离级别
    • 存在问题
      1. 脏读:一个事务读取到另外一个事务中没有提交的数据
      2. 虚读(不可重复读):在同一事务中,两次读取到的数据不一致
      3. 幻读:一个事务操作(DML)数据,另外一个事务中添加了一条数据,则前者查询不到自己的修改(MySQL中不存在)
    • 级别分类
      1. read uncommited:读未提交,会导致脏读、虚读和幻读,如转账后不提交事务,等对方确认后再回滚引发安全问题
      2. read commited:读已提交,Oracle默认,会导致虚读和幻读,对方提交后转账记录改变
      3. repeatable read:可重复读,MySQL默认,会导致幻读,自己提交后方可查询到变化
      4. serializable:串行化,可解决所有问题,一个事务操作时锁住其他事务,对方提交后方可进行查询等操作
      • 注意:隔离级别从小到大安全性越来越高,但效率降低
      • 查询级别:select @@tx_isolation;
      • 设置级别:set global transaction isolation level 级别字符串

用户管理
  • 添加用户:creat user '用户名'@'主机名' identified by '密码';

  • 删除用户:drop user '用户名'@'主机名';

  • 查询用户:

    • 切换到mysql数据库
    • 查询user表,通配符表示可以在任意主机使用该用户登录数据库
  • 修改用户密码:set password for '用户名'@'主机名' = password('新密码');

    若忘记了root用户密码,无验证启动:mysql --skip-grant-tables,步骤略

    注意:本机的root用户为超级管理员,所有主机名不要设%,并且别让他人在你电脑上操作数据库!

权限管理
  • 查询权限:show grants for '用户名'@'主机名';
  • 授予权限:grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';#all为权限通配符
  • 撤销权限:revoke 权限列表 from 数据库名.表名 to '用户名'@'主机名';

MySQL完结撒花

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值