Mysql基础架构

image.png

1.1|连接器

连接器负责根客户端建立连接、获取权限、维持和管理连接。

1.2|缓存(不推荐使用)

当连接建立完成,Mysql拿到一个查询请求后,会先到查询缓存中查看之前是否执行过这条语句,执行过的语句其结果可能以key-value的方式存储在内存中,key为查询语句,value为查询结果,如果在缓存中找到则直接返回。(注:Mysql8.0版本已经直接将查询缓存的功能移除)

1.3|分析器

分析器首先会对语句进行“词法分析”,Mysql需要识别出SQL语句中的字符串所代表的含义;然后对SQL语句进行语法规则检查,判断当前SQL语句是否满足Mysql语法。

1.4|优化器

优化器用于确定当前SQL语句的执行方案,如选择当前SQL语句使用哪个索引,选择多表关联查询时表的连接顺序等。

1.5|执行器

执行器负责通过调用存储引擎提供的接口,在开始执行之前,需要判断当前用户是否对这个表有没有对应操作的权限,如果有权限,就打开表继续执行,执行器会根据表引擎的定义去使用对应引擎提供的接口。

环境安装

操作系统:centos
mysql版本:5.7

  1. # 下载
  2. wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
  3. # 解压
  4. tar xf mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar
  5. # 安装依赖
  6. yum -y install libaio
  7. yum -y install perl-CPAN
  8. # 安装mysql
  9. rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
  10. rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
  11. rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
  12. rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
  13. # 启动服务
  14. systemctl start mysqld.service
  15. # 查看mysql状态
  16. systemctl status mysqld.service
  17. # 获取临时密码
  18. grep 'temporary password' /var/log/mysqld.log
  19. # 重设密码
  20. # 登录mysql
  21. mysql -uroot -p # 输入临时密码
  22. # 更改密码安全策略
  23. set global validate_password_policy=0;
  24. set global validate_password_length=1;
  25. # 重设密码
  26. set password for root@localhost=password('123456');
  27. # 分配用户
  28. # 创建新用户
  29. use mysql;
  30. create user 'mysql_user'@'%' identified by '!@#22341ssdf';
  31. # 设置远程登录权限
  32. grant all privileges on *.* to 'mysql_user'@'%' identified by '!@#22341ssdf';
  33. # 刷新配置
  34. flush privileges;