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. 学习RabbitMQ(二)

    MOM(message oriented middleware) 消息中间件(是在消息的传递过程中保存消息的容器,消息中间件再将消息从它的源中继到它的目标时,充当中间人的作用,队列的主要目的是提供路由 ...

  2. 遇到MyBatis-Plus的错误之“Table 'mybatis_plus.user' doesn't exist”

    一.问题 Table 'mybatis_plus.user' doesn't exist 二.原因 表中没有user表 三.解决方案 生成user表既可 四.结果图 运行后显示查询出来的数据 五.总结 ...

  3. SQL语句之Column 'Status' in where clause is ambiguous错误

    问题: AND created_by IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) limit 0, 10]; Column 'created_by' in where cla ...

  4. 4-Pandas数据预处理之数据转换(df.map()、df.replace())

    在数据分析中,根据需求,有时候需要将一些数据进行转换,而在Pandas中,实现数据转换的常用方法有: 利用函数或是映射 可以将自己定义的或者是其他包提供的函数用在Pandas对象上实现批量修改. ap ...

  5. 一次关于关系抽取(RE)综述调研的交流心得

    本文来自于一次交流的的记录,{}内的为个人体会. 基本概念 实事知识:实体-关系-实体的三元组.比如, 知识图谱:大量实时知识组织在一起,可以构建成知识图谱. 关系抽取:由于文本中蕴含大量事实知识,需 ...

  6. mpvue打包没有app.json等配置文件的解决方法

    问题 一早上折腾了1个小时,小程序始终提示查找不到'app.json'文件.mpvue重新打包,光生成内容文件无配置文件. 解决办法 出错原因:版本问题 只需要把packpage.json里的mpvu ...

  7. java中Array(数组)的用法

    8.Array(数组)    数组是作为对象来实现的.(really occupy the memopry,真实的占用内存 ) An array is a data structure that st ...

  8. kafka生产者调优手册

    目录 第一章 kafka硬件配置选择 1.1 场景说明 1.2 服务器台数选择 1.3 磁盘选择 1.4 内存选择(堆内存,页缓存) 1.4.1 堆内存配置 1.4.2 页缓存选择 1.5 cpu选择 ...

  9. Spring集成web环境(手动实现)

    1.创建UserDao接口及其实现类UserDaoImpl(接口代码省略) public class UserDaoImpl implements UserDao { @Override public ...

  10. 在oracle控制台当你输入错误的时候,还不能删除,回退的解决方法

    对于回退出现^H解决方法 oracle@prd:/home/oracle$sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on ...