mysql事务管理和mysql用户管理
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用户管理的更多相关文章
- mysql 事务是专门用来管理insert,update,delete语句的,和select语句一点不相干
1.mysql 事务是专门用来管理insert,update,delete语句的,和select语句一点不相干 2.一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性).Con ...
- mysql的安装使用及其用户管理
mysql的安装使用及其用户管理 一.mariadb安装 搭建yum源 [mariadb] name = MariaDB baseurl = http://mirrors.ustc.edu.cn/ ...
- MySQL数据库(五)--用户管理、pymysql模块
一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv > columns_pri ...
- MySQL数据库(五)—— 用户管理、pymysql模块
用户权限管理.pymysql模块 一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv ...
- mysql事务之一:MySQL数据库事务隔离级别(Transaction Isolation Level)及锁的实现原理
一.数据库隔离级别 数据库隔离级别有四种,应用<高性能mysql>一书中的说明: 然后说说修改事务隔离级别的方法: 1.全局修改,修改mysql.ini配置文件,在最后加上 1 #可选参数 ...
- 事务以及MySQL事务隔离级别+MySQL引擎的区别
1.事务的基本要素:ACID 1.原子性(Atomicity): 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...
- mysql命令大全用户管理相关命令
1.登陆 mysql>mysql -uJDev -p 2.用户管理 mysql>use mysql; 3.查看有哪些登陆用户 mysql> select host,user, ...
- 10.mysql事务管理及python操作
在用户操作MySQL过程中,对于一般简单的业务逻辑或中小型程序而言,无需考虑应用MySQL事务.但在比较复杂的情况下,往往用户在执行某些数据操作过程中,需要通过一组SQL语句执行多项并行业务逻辑或程序 ...
- 数据库事务系列-MySQL跨行事务模型
说来和MySQL倒是有缘,毕业的第一份工作就被分配到了RDS团队,主要负责把MySQL弄到云上做成数据库服务.虽说整天和MySQL打交道,但说实话那段时间并没有很深入的理解MySQL内核,做的事情基本 ...
随机推荐
- Python - 异常处理初步
- can总线第二讲
一 CAN总线拓扑结构CAN是一种分布式的控制总线,总线上的每一个节点一般来说都比较简单,使用MCU控制器处理CAN总线数据,完成特定的功能:通过CAN总线将各节点连接只需较少的线缆(两根线:CAN_ ...
- 单例模式应用 | Shared_ptr引用计数管理器
在我们模拟设计 shared_ptr 智能指针时发现,不同类型的 Shared_ptr 不能使用同一个引用计数管理器,这显然会造成内存上的浪费.因此我们考虑将其设计为单例模式使其所有的 Shared_ ...
- 9_根轨迹_Part3_分离点/汇合点和根的性质
- 前端进阶(12) - css 的弱化与 js 的强化
css 的弱化与 js 的强化 web 的三要素 html, css, js 在前端组件化的过程中,比如 react.vue 等组件化框架的运用,使 html 的弱化与 js 的强化 成为了一种趋势, ...
- javascript入门教程(二):变量
大家好,我从今天开始就会正式讲javascript的语法方面.变量 js中的变量一般使用var来声明(es6的let不在本教程讨论范围内),可以用来定义任何种类的变量,如果只对变量进行了定义而没有赋值 ...
- java Web开发实现手机拍照上传到服务器
第一步: 搭环境,基本jdk 1.6+apache tomcat6.0+myeclipse2014 1.我们要清楚自己的jdk版本.因为我们Apache Tomcat配置的成功的前提是版本相对应. 安 ...
- java的原子类到底是啥?ABA,CAS又是些什么?
1)解决并发不是用锁就能解决吗,那SDK干嘛还要搞个原子类出来? 锁虽然能解决,但是加锁解锁始终还是对性能是有影响的,并且使用不当可能会造成死锁之类的问题. 2)原子类是怎样使用的,比如说我要实现一个 ...
- 【uniapp 开发】字典工具类 ObjectUtil
{__/} ( • - •) /つ寿司 你要不要? {__/} ( • - •) /つ草莓 你要不要? {__/} ( • - •) /つ披萨 你要不要? {__/} ( • - •) /つ桃子 你要 ...
- java中类变量和实例变量的实质区别?
类变量和实例变量的区别 相对于static(静态的)或说类的, 本章开始提到的都是instance(实例的)或说对象的. 每个对象都有自己的一份儿对象域或实例域,相互之间没关系, 不共享. 我们可以从 ...