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内核,做的事情基本 ...
随机推荐
- 学习RabbitMQ(二)
MOM(message oriented middleware) 消息中间件(是在消息的传递过程中保存消息的容器,消息中间件再将消息从它的源中继到它的目标时,充当中间人的作用,队列的主要目的是提供路由 ...
- 遇到MyBatis-Plus的错误之“Table 'mybatis_plus.user' doesn't exist”
一.问题 Table 'mybatis_plus.user' doesn't exist 二.原因 表中没有user表 三.解决方案 生成user表既可 四.结果图 运行后显示查询出来的数据 五.总结 ...
- SQL语句之Column 'Status' in where clause is ambiguous错误
问题: AND created_by IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) limit 0, 10]; Column 'created_by' in where cla ...
- 4-Pandas数据预处理之数据转换(df.map()、df.replace())
在数据分析中,根据需求,有时候需要将一些数据进行转换,而在Pandas中,实现数据转换的常用方法有: 利用函数或是映射 可以将自己定义的或者是其他包提供的函数用在Pandas对象上实现批量修改. ap ...
- 一次关于关系抽取(RE)综述调研的交流心得
本文来自于一次交流的的记录,{}内的为个人体会. 基本概念 实事知识:实体-关系-实体的三元组.比如, 知识图谱:大量实时知识组织在一起,可以构建成知识图谱. 关系抽取:由于文本中蕴含大量事实知识,需 ...
- mpvue打包没有app.json等配置文件的解决方法
问题 一早上折腾了1个小时,小程序始终提示查找不到'app.json'文件.mpvue重新打包,光生成内容文件无配置文件. 解决办法 出错原因:版本问题 只需要把packpage.json里的mpvu ...
- java中Array(数组)的用法
8.Array(数组) 数组是作为对象来实现的.(really occupy the memopry,真实的占用内存 ) An array is a data structure that st ...
- kafka生产者调优手册
目录 第一章 kafka硬件配置选择 1.1 场景说明 1.2 服务器台数选择 1.3 磁盘选择 1.4 内存选择(堆内存,页缓存) 1.4.1 堆内存配置 1.4.2 页缓存选择 1.5 cpu选择 ...
- Spring集成web环境(手动实现)
1.创建UserDao接口及其实现类UserDaoImpl(接口代码省略) public class UserDaoImpl implements UserDao { @Override public ...
- 在oracle控制台当你输入错误的时候,还不能删除,回退的解决方法
对于回退出现^H解决方法 oracle@prd:/home/oracle$sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on ...