1.什么是事务?

事务是一条或者是一组语句组成一个单元,这个单元要么全部执行,要么全不执行。

2.事务特性:
ACID:
  A:atomicity原子性;整个事务中的所有操作要么全部成功执行,要么全部失败后回滚
  C:consistency一致性;数据库总是从一个一致性状态转换为另一个一致性状态
  I:Isolation隔离性;一个事务所做出的操作在提交之前,是不能为其它事务所见;隔离有多种隔离级别,实现并发
  D:durability持久性;一旦事务提交,其所做的修改会永久保存于数据库中

3.如果开启事务和结束事务,注意:开启事务要选择支持事务的存储引擎,比方MyISAM不支持事务,InnoDB支持事务
开启事务:begin; begin work; start trabscation;
结束事务:commit提交; rollback回滚;

3.举例说明事务

环境准备:一台服务器,开两个会话连接

案例一问题:会话1事务进行中,会话2能否看到修改的内容
会话1开启事务:mysql> begin;
Query OK, 0 rows affected (0.00 sec) 在会话1中插入数据:mysql> insert test6 (name) values ('aaa');
Query OK, 1 row affected (0.00 sec) 查看会话1表内容:mysql> select * from test6;
+------+-------+
| name | money |
+------+-------+
| hhh | 888 |
| aaa | NULL |
+------+-------+
2 rows in set (0.00 sec)可以看到刚插入的数据 会话2查看表内容:mysql> select * from test6;
+------+-------+
| name | money |
+------+-------+
| hhh | 888 |
+------+-------+
1 row in set (0.00 sec)没查到新插入的数据 会话1结束事务:
mysql> commit;
Query OK, 0 rows affected (0.00 sec) 会话2在查看表内容:mysql> select * from test6;
+------+-------+
| name | money |
+------+-------+
| hhh | 888 |
| aaa | NULL |
+------+-------+
可以查看插入的内容 总结:事务进行中,只有本会话可以看到修改内容,其他会话看不到。
案例二问题:会话1开启事务,在会话2中插入数据,会话1能否看到修改内容
会话1开启事务:begin;
去会话2插入数据:mysql> insert test6 values ('wanger',10);
Query OK, 1 row affected (0.00 sec) 去会话1查看表内容:
mysql> select * from test6;
+--------+-------+
| name | money |
+--------+-------+
| hhh | 888 |
| aaa | NULL |
| wanger | 10 |
+--------+-------+
3 rows in set (0.00 sec) 总结:开启事务的会话端口,信息同步是实时的

4.查看事务:

查看事务列表 show processlist;

杀死事务 格式:kill 事务id      例子:kill 13;

查看当前正在进行的事务:select * from information_schema.innodb_trx\G;

查看当前已锁定的事务:select * from information_schema.innodb_locks;

查看当前等待锁的事务:

select * from information_schema.innodb_lock_waits;

查看锁的超时释放时间:

mysql> show global variables like 'innodb_lock_wait_timeout';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| innodb_lock_wait_timeout | 50 |
+--------------------------+-------+
1 row in set (0.00 sec)

5.mysql用户管理

表管理

系统授权表:
db:存放授权用户对数据库的访问权限
user:存储授权用户的访问权限
columns_priv:用户对字段的访问权限
mysql> grant select,update (Host,shell) on class6.user to testt@localhost identified by '1234';

table_priv:表
procs_priv:show processlist;
proxies_priv:角色模拟

用户管理

创建用户
create user username@localhost identified by password;
mysql> create user zhao@localhost identified by '1234';

用户重命名
rename user old_user_name to new_user_name;
mysql> rename user zzz to zht1;

删除用户
drop user testt@localhost;

修改密码
set password for root@localhost = password('1234');
update mysql.user setauthentication_string= ...

set password for zht1 = password('1111');

grant all on *.* to username@host identified by '';

数据库root用户密码忘记:
1.停止mysql systemct stop mysqld
2.跳过mysql 授权表启动 关闭网络
去配置文件里面配置跳过授权表
/etc/my.cnf
配置如下:[mysqld]
skip-grant-tables
需要注意 密码复杂度配置需要暂时注释
3.重设root密码
mysql> update mysql.user set authentication_string=password('centos') where user='root';
4.启动mysql

6.权限管理

所有权限 all / all privileges

如何授权

grant all
grant select,insert
grant select (column,column2)

如何取消权限

revoke select on db.table from user@host;

mysql> revoke select (Host) on class6.user from testt@localhost;

查看用户获得的授权

show grants for user@host;

注意事项:

grant  revoke 系统表中,一般mysql会在启动的时候就加载授权表
flush privileges;#刷新授权表



mysql事务管理和mysql用户管理的更多相关文章

  1. mysql 事务是专门用来管理insert,update,delete语句的,和select语句一点不相干

    1.mysql 事务是专门用来管理insert,update,delete语句的,和select语句一点不相干 2.一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性).Con ...

  2. mysql的安装使用及其用户管理

    mysql的安装使用及其用户管理   一.mariadb安装 搭建yum源 [mariadb] name = MariaDB baseurl = http://mirrors.ustc.edu.cn/ ...

  3. MySQL数据库(五)--用户管理、pymysql模块

    一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv > columns_pri ...

  4. MySQL数据库(五)—— 用户管理、pymysql模块

    用户权限管理.pymysql模块 一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv ...

  5. mysql事务之一:MySQL数据库事务隔离级别(Transaction Isolation Level)及锁的实现原理

    一.数据库隔离级别 数据库隔离级别有四种,应用<高性能mysql>一书中的说明: 然后说说修改事务隔离级别的方法: 1.全局修改,修改mysql.ini配置文件,在最后加上 1 #可选参数 ...

  6. 事务以及MySQL事务隔离级别+MySQL引擎的区别

    1.事务的基本要素:ACID 1.原子性(Atomicity): 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...

  7. mysql命令大全用户管理相关命令

        1.登陆 mysql>mysql -uJDev -p 2.用户管理 mysql>use mysql; 3.查看有哪些登陆用户 mysql> select host,user, ...

  8. 10.mysql事务管理及python操作

    在用户操作MySQL过程中,对于一般简单的业务逻辑或中小型程序而言,无需考虑应用MySQL事务.但在比较复杂的情况下,往往用户在执行某些数据操作过程中,需要通过一组SQL语句执行多项并行业务逻辑或程序 ...

  9. 数据库事务系列-MySQL跨行事务模型

    说来和MySQL倒是有缘,毕业的第一份工作就被分配到了RDS团队,主要负责把MySQL弄到云上做成数据库服务.虽说整天和MySQL打交道,但说实话那段时间并没有很深入的理解MySQL内核,做的事情基本 ...

随机推荐

  1. centos7 环境安装rabbitmq 集群

    继上一篇https://www.cnblogs.com/drafire/p/10062891.html ,这篇博客继续介绍centos 7下安装rabbitmq的集群. 今天在公司搞了一天的rabbi ...

  2. 学习openstack(七)

    相关资料: https://www.cnblogs.com/shhnwangjian/category/942049.html https://www.cnblogs.com/goodcook/cat ...

  3. 面试官:什么是MySQL 事务与 MVCC 原理?

    作者:小林coding 图解计算机基础网站:https://xiaolincoding.com/ 大家好,我是小林. 之前写过一篇 MySQL 的 MVCC 的工作原理,最近有读者在网站上学习的时候, ...

  4. Vue的computed(计算属性)使用实例之TodoList

    最近倒腾了一会vue,有点迷惑其中methods与computed这两个属性的区别,所以试着写了TodoList这个demo,(好土掩面逃~); 1. methods methods类似react中组 ...

  5. Kurento安装与入门02——运行示例前的准备

    官方一共提供了13个示例,这些示例运行的方式大同小异,一般会提供JAVA.Browser JavaScript.Node.js三种版本,这里仅演示java版本的示例.这些示例要求系统内已经正确安装了K ...

  6. Sentry前端部署拓展篇(sourcemap关联、issue关联、release控制)

    原文首发于我的个人博客: https://lonhon.top/ 之前的<基础篇>主要介绍了Sentry和基本部署流程,在实际使用过程中你会发现Sentry受欢迎的原因:除了单纯的监控异常 ...

  7. 用Exception类捕获所有异常的技术是怎么用的?

    3.用Exception类捕获所有异常  马克-to-win:注意,一个事实是:Exception类是所有其他异常类的父类,所以Exception类能捕获所有的异常.马克-to-win:问题是用Exc ...

  8. 小程序拿checkbox的checked属性

     方法一.checkbox <checkbox class="round red" bindtap="checkboxChange" checked=&q ...

  9. ES 架构及基础 - 1

    Elasticsearch 是一款分布式,RESTful 风格的搜索和数据分析引擎,可以从海量的数据中高效的找到相关信息.如 wiki 用 ES 进行全文检索及其高亮,Github 用其检索代码,电商 ...

  10. 麒麟系统开发笔记(三):从Qt源码编译安装之编译安装Qt5.12

    前言   上一篇,是使用Qt提供的安装包安装的,有些场景需要使用到从源码编译的Qt,所以本篇如何在银河麒麟系统V4上编译Qt5.12源码.   银河麒麟V4版本   系统版本:   Qt源码下载    ...