Mysql基础架构
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
# 下载wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar# 解压tar xf mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar# 安装依赖yum -y install libaioyum -y install perl-CPAN# 安装mysqlrpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpmrpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpmrpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm# 启动服务systemctl start mysqld.service# 查看mysql状态systemctl status mysqld.service# 获取临时密码grep 'temporary password' /var/log/mysqld.log# 重设密码# 登录mysqlmysql -uroot -p # 输入临时密码# 更改密码安全策略set global validate_password_policy=0;set global validate_password_length=1;# 重设密码set password for root@localhost=password('123456');# 分配用户# 创建新用户use mysql;create user 'mysql_user'@'%' identified by '!@#22341ssdf';# 设置远程登录权限grant all privileges on *.* to 'mysql_user'@'%' identified by '!@#22341ssdf';# 刷新配置flush privileges;
