Mysql基础入门-Mysql体系结构、及创建删除授权用户

MySQL 体系结构

mysql体系结构由最上层的连接组件和下面服务器的连接池、管理工具和服务、sql接口、查询分析器、优化器、缓存器、插件式存储引擎、物理文件系统组成。

mysql是独有的插件式体系结构,各个存储引擎由自己的特点。

Mysql基础入门-Mysql体系结构、及创建删除授权用户

连接池:由于每次建立需要消耗很多时间,连接池的作用就是将这些连接缓存下来,下次可以直接用已经建立好的连接,提升性能。

管理工具和服务:系统管理和控制工具,例如备份恢复、mysql复制、集群等

sql接口:接受用户的sql命令,并且返回用户需要查询的结果

查询解析器:sql命令传递到解析器的时候会被解析器验证和解析(权限、语法结构)

查询优化器:sql语句在查询之前会使用查询优化器对查询进行优化

缓存:如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据

存储引擎:就是如何管理操作数据(存储数据、更新、查询数据等)的一种方法。

mysql各个存储引擎概述:

innodb存储引擎:mysql5.5以后默认的存储引擎,支持自动增长列,支持事务,支持外键约束,由于该存储引擎在事务上具有优势,即支持具有提交,回滚及崩溃恢复能力等事务特性,所以比myisam存储引擎占用更多磁盘空间。因此当需要频繁更新,删除操作,同时对事务完整性要求较高,建议选择。

bdb存储引擎:可替代innodb的事务引擎,支持commit,rollback和其他事务特性。

myisam存储引擎:不支持事务也不支持外键,所以访问速度较快,适合olap(在线分析处理),当对事务完整性没有要求并以访问为主的应用适合使用该存储引擎。其中frm:放表 定义文件,myd:放数据文件,myi:放索引文件。

memory存储引擎:数据存放在内存中,因此访问速度最快,但是安全上没有保障。适合于需要快速的访问或临时表。

maria存储引擎:目的取代myisam,支持缓存数据和索引文件

Mysql基础入门-Mysql体系结构、及创建删除授权用户

 

创建删除用户和授权用户

创建用户

创建仅限于本地登录的用户test
create user 'test'@'localhost' identified by '123456';
创建远程登录不包括localhost的用户test
create user 'test'@'%' identified by '123456';


用户授权


grant 权限 on 数据库.* to 用户名@登录主机 identified by '密码';
create database book;
grant all  privileges on book.* to "test"@"localhost" identified by "123456";
#赋予all privileges所有权限 book库.*任意表,test用户在本地登录
grant all  privileges on *.* to 'test'@'localhost' identified by '123456';
*.* 任意库任意表
grant select,update on book.* to "test"@"localhost" identified by "123456"; #赋予select,update权限
grant replication slave on *.* to 'repl2'@'192.168.0.80' identified by '123456'; #赋予建立复制时所需要用到的用户权限,也就是slave server必须被master server授权具有该权限的用户,才能通过该用户复制
flush privileges; 刷新系统权限

Mysql基础入门-Mysql体系结构、及创建删除授权用户
Mysql基础入门-Mysql体系结构、及创建删除授权用户
Mysql基础入门-Mysql体系结构、及创建删除授权用户
Mysql基础入门-Mysql体系结构、及创建删除授权用户

删除用户


delete from mysql.user where user='test' and host='localhost';
flush privileges;

忘记密码修改方法


vim  /etc/my.cnf
skip-grant-tables
systemctl restart mysqld
mysql
update user set authentication_string=password('123456') where user='root';
flush privileges;
Mysql基础入门-Mysql体系结构、及创建删除授权用户
重启如果报错,则把其它设置暂时注释掉即可。
修改密码后,把skip-grant-tables删除,重启服务,再次登录mysqld,就需要新设置的密码了。