下文主要给大家带来MySQL密码管理、存储引擎及事务相关知识,希望这些内容能够带给大家实际用处,这也是我编辑MySQL密码管理、存储引擎及事务相关知识这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。
1.MYSQL密码管理:
1.1修改用户密码:
(1) SET PASSWORD [FOR 'user'@'host'] = PASSWORD('cleartext password'); (2) UPDATE mysql.user SET Password=PASSWORD('cleartext password') WHERE User='USERNAME' AND Host='HOST'; (3) mysqladmin -uUSERNAME -hHOST -p password 'NEW_PASS' 生效:FLUSH PRIVILEGES
1.2 忘记管理员密码的解决办法:
(1) 修改配置文件,添加一下内容: skip-grant-tables #忽略用户名密码验证 skip-networking #禁止远程登录提高安全性,注添加后仅能在数据库本机操作,如不能本机操作不要添加。云主机一般限制仅能办公区域ip访问即可。 重启mysqld服务 (2) mysql直接登录,通过UPDATE命令修改管理员密码; (3) 移除第一步添加的两个选项,以正常方式启动mysqld进程;
2.MySQL常用存储引擎:
2.1 INNODB类
擅长处理大量的短期事务,数据存储于表空间(table space)中
特点:
1. 所有innodb表的数据和索引放置于同一个表空间中 表空间文件:datadir定义的目录下 数据文件(存储数据和索引):tbl_name.ibd,tbl_name.frm(表格式定义文件) 2. 基于MVCC来支持高并发,支持所有的四个隔离级别,默认级别为REPEATABLE READ;间隙锁防止幻读。 3. 使用聚集索引 4. 支持自适应hash索引 5.备份:支持热备
MariaDB 默认使用XtraDB (innodb增强版,percona组织研发)
特点:
1.数据存储:表空间 2.并发:MVCC(多版本并发控制),间隙锁 3.索引:聚集索引,辅助索引 4.性能:预计操作、自适应hash、插入缓存区 5.备份:支持热备(XtraBackup备份工具)
2.2MYISAM
支持全文索引(FULLTEXT index)、压缩、空间函数(GIS);但不支持事务,不支持行级锁 ,崩溃后无法安全恢复(Aria myisam的增强版支持崩溃安全恢复)
适用场景:只读(或者写较少)、表较小(可接受长时间进行修复操作)
文件:
tab1_name.frm:表格式定义 tab1_name.MYD:数据文件 tab1_name.MYI:索引文件
特性:
加锁和并发:表级锁 修复:手工或自动修复、但可能丢失数据 索引:非聚集索引 延迟更新索引键: 压缩表
3.MySQL事务:
事务:一组原子性的sql查询,或者说一个独立的工作单元。
3.1 ACID测试:
A:原子性, 最小不能分割的单元,要么全部都成功执行,要么全部失败后回滚。 C:一致性, 数据总是从一个一致性状态转到另一个一致性状态 I:隔离性, 一个事务所做出的操作在提交之间,是不能为其他所见的;隔离有多种隔离级别,隔离性越高安全性越高,同时支持并发的能力越差。 D:持久性, 一旦事务提交,其所作的修改会永久保存于数据库中
3.2 事务处理过程:
启动事务:start transaction;
存档点:savepoint pointname
rollback to pointname 回到存档点
release pointname 删除存档点
结束事务:1.commit 提交 2. rollback 回滚
建议:显示请求和提交事务,不要使用自动提交功能,自动提交会产生大量磁盘IO影响性能。
方法:set SESSION autocommit=0; show variables like '%auto%';确认
3.3 事务的隔离级别:
查看级别:show global variables like '%tx_isolation%';
READ-UNCOMMITTED #(读未提交) READ-COMMITTED #(读提交) REPEATBLE-READ #(可重读)默认 SERIALIZABILE #(可串行化)
以上事务级别对应的问题:
脏读:即读别人未提交的数据 不可重复读:同一事务中改动之前读一次,改之后读一次,两次读到的信息不一致(由于查询时系统中其他事务修改的提交而引起的) 幻读:别人已经修改提交了,自己在修改前已打开的事务中看到是修改之前的信息。提交事务后会发现信息已改变。 加锁读:一个事务做出数据的修改未提交时,其他事务无法提交。
死锁: 两个或多个事务在同一资源相互占用,并请求锁定对方占用的资源的状态。
事务日志: 事务日志的写入类型为“追加”,因此其操作为顺序IO,此日志也被称为预写式日志(write ahead logging)ib_logfile
对于以上关于MySQL密码管理、存储引擎及事务相关知识,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。