-
Mysqladmin常用选项,设置密码的三种方式
1.1 mysqladmin常用选项
语法:mysqladmin [option] command [command option] command ......
常用选项:ping status password refresh刷新授权 shutdown 等
例如:mysqladmin -u root -p'Xxhf@2022' ping mysqladmin -u用户名 -p旧密码 password 新密码
1.2 为用户设置密码三种方式
SET PASSWORD FOR “USER@’HOST’=‘XXXXXX’; %匹配任意长度的任意字符
update mysql.user SET password=PASSWORD(‘password’) WHERE clause; (需要重读授权表)
mysqladmin -u用户名 -p旧密码 password 新密码
-
Mysql的数据类型
字符:变长字符 VARCHAR(#),VARBINARY(#) BINARY是区分大小写的
定长字符型最长长度为255 变长为65535
定长字符 CHAR(#),BINARY(#) ‘zhangsan’ ZHANGSAN
内建类型 ENUM(枚举,多个条件选一个),SET(集合,多个条件选可以选多个) mysql独有的数据类型
对象(也是字符) TEXT(65535), TINYTEXT, MEDIUMTEXT(1600万), LOGTEXT(40亿), (文本大对象类型)
BLOB,TINYBLOB,MEDIUMBLOB,LONGBLOB (二进制大对象类型)<img>
字符型插入或更新数据必须接引号(单引号或双引号都可以)
MySQL :: MySQL 8.0 Reference Manual :: 13.3.2 The CHAR and VARCHAR Types
数值:
精确数值: 1:整形 INT (包含正数和负数)
TINYINT SMALLINT MEDIUMINT INT BIGINT
2^8(1字节) 2^16(2字节) 2^24(3字节) 2^32(4字节) 2^64(8字节)
2:十进制 DECIMAL(mysql独有类型) decimal(8,3) 总长8位,精确小数点后三位 例如20000.535 200000.10
近似数值: 1:单精度:FLOAT 精确到小数点后一位
2:双精度:DOUBLE 精确到小数点后两位
字符类型修饰符:
NOT NULL 非空约束
NULL
DEFAULT ‘’指定默认值 (此两试用任何)
CHARACTER SET ‘’使用的字符集,或者使用CHARSET ‘’
COLLATION:使用的排序规则
查看所有字符集
mysql > SHOW CHARACTER SET; show charset;
查看默认排序规则
mysql > SHOW COLLATION;
整形数据修饰符
NOT NULL 非空约束
NULL
DEFAULT NUMBER 默认数值,定义之后不要写主键唯一键
PRIMARY KEY主键 | UNIQUE KEY唯一键
UNSIGNED(无符号修饰,仅正数) (mysql中数值不能加引号,字符型要加引号,支持三种引号,’’,””,``.支持AUTO_INCREMENT(自动增长)
此两修饰数值属于mysql独有数据类型
内建类型(枚举和集合)修饰符
NULL
NOT NULL
DEFAULT gender enum(‘M’,’F’) default ‘M’
日期时间型:(也需要加上引号)
日期:DATE 年-月-日
时间:TIME 时-分-秒
日期和时间:DATETIME
时间戳:TIMESTAMP
年份:YEAR(2),YEAR(4) 18 2018
-
跳过密码破解密码进行免密登录
跳过密码实现破解密码免密登录 /etc/my.cnf
//只能在本机操作,进行密码破解 ,ss -tnl端口隐藏了,直接登录就ok
//查看账户
//改密码
先mysql进入数据库,将密码置为空,正在将上述添加的两行注释,正常进入数据库 改密码
-
mysql数据库的文件类型
数据文件(包括索引)日志文件(二进制日志、错误日志、查询日志、慢查询日志、中继日志)
-
Mysql索引的作用和类型
索引管理
索引:
按照特定数据结构存储的数据
应创建在经常用作查询条件的字段上
实现的功能
没有索引:表扫描(消耗大量资源)
有了索引:将单个字段抽取出来,进行排序,将索引装载进入内存。
索引的作用
1:将经常用于查询的某些字段定义索引后,数据库利用索引定位技术,能够大大加快查询速率。
特别是在当表特别大的时候,或者涉及到多表查询的时候,利用索引可以使查询加快成千倍。
2:极大的降低I/O成本(将随机IO转为顺序IO),降低数据库的排序成本。
3:使用分组、排序时,能大大减少分组和排序时间
索引的缺点:占用额外空间,影响插入速度
索引类型:
myisam .myi存储索引 .myd存储文件 数据和索引不同文件
inodb .idb 数据和索引同一文件
聚集索引:数据和索引存储在一起 innodb——用于主键
非聚集索引:指针导向 myisam 二叉树红黑树
主键索引、辅助索引82
稠密索引(主键)、稀疏索引
B+ TREE索引 HASH索引 R TREE索引
参考链接:
二叉树:https://www.cs.usfca.edu/~galles/visualization/BST.html
红黑树:https://www.cs.usfca.edu/~galles/visualization/RedBlack.html
B树:https://www.cs.usfca.edu/~galles/visualization/BTree.html
B+树:https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html
B树和B+树的区别
B树每次发起io基于根节点,基于叶子节点的
都是通过索引检测数据的一种方式,
B树的节点上都存储了索引和数据,B+树都存在叶子节点,非叶子节点村索引
简单索引和组合索引
索引组织方式
左前缀索引:例如like ‘abc%’
模糊匹配
Select * from testlog where name like 'wang65%';
MySQL在索引时,采用左前缀索引。例如字符型255长度,会抽取最左侧的一部分字符来作为索引。
-
Mysql的12大组件
-
Select语句执行流程和优先级
SELECT
查询
SELECT语句的执行过程
过程详解:
from clause ---> where clause ---> group by ---> having clause --->order by ---> select --->limit
操作方法
select col1,col2... from clause--->where clause--->group by--->having--->order by--->limit
SELECT语句默认查询后会被缓存,方便下次查询
SQL_CACHE:显示指定存储查询结果于缓存之中。
查询sql缓存大小 show global variables like ‘query%’;
查询sql缓存开没开 show global variables like ‘cache%’;
-
Mysql体系结构图
-
mysql体系结构图
默认单个最大实例并发151,可以调大到1024,支持复用io结构
-
Mysql存储引擎,myisam和innodb的区别
不同的存储技术将数据存储在磁盘上,每一种引擎采用不同的技术、存储机制、索引技巧、锁定水平,最终提供不同的功能和能力。
概念:5.1之前默认存储引擎是MyISAM,5.1之后默认是INNODB(支持事务处理)
查看当前默认存储引擎:show engines;
-
MyISAM存储引擎的特点:
①:不支持事务
②:表级别锁
③:读写相互阻塞,写入不能读,读时不能写
④:只缓存索引
⑤:不支持外键约束
⑥:读取速度较快,占用资源较少
⑦:不支持MVCC和高并发
⑧:崩溃恢复性较差
⑨:MySQL5.5之前的版本默认的存储引擎。
MyISAM存储引擎适用的场景:只读、表较小
MyISAM存储引擎文件:.frm--->表格式定义 .MYD--->数据库文件 .MYI--->索引文件
-
InnoDB引擎特点
行级锁
支持事务,适合处理大量短期事务
读写阻塞与事务隔离级别相关
可缓存数据和索引
支持聚簇索引
崩溃恢复性更好
支持MVCC高并发
从MySQL5.5后支持全文索引
从MySQL5.5.5开始为默认的数据库引擎
-
Mysql的事务,隔离级别,属性
-
事务
-
概念
事务Transactions:一组原子性的SQL语句,或一个独立工作单元
事务是一种机制,一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起将系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。
事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时,事务是最小的控制单元。默认情况下一条sql语句就是一个事务
事务适用于多用户同时操作的数据库系统的场景,如银行、保险公司及证券交易系统等等。通过事务的完整性以保证数据的一致性、完整性。
事务日志:记录事务信息,实现undo,redo等故障恢复功能,
myisam不支持,只有innodb支持
只针对DML语句
Insert xxxxxx
Update xxxxxx
Delete xxxxxx
-
事务的四个属性(ACID)
原子性 atomicity 整个事务中的所有操作要么全部成功执行,要么全部失败后回滚
一致性 consistency 数据库总是从一个一致性状态转换为另一个一致性状态
隔离性 isolation 一个事务所做出的操作在提交之前,是不能为其它事务所见;隔离有多种隔离级别,实现并发
持久性 durability 一旦事务提交,其所做的修改会永久保存于数据库中
默认单条SQL语句即为一个单独的事务,会实现自动提交事务,若实现非自动提交,输入set autocommit=0;即可
-
事务隔离级别:
从上至下更加严格
READ UNCOMMITTED 可读取到未提交数据,产生脏读
READ COMMITTED 不可重复读