mysql-V8.0.16部署安装
1、系统环境准备
1) ip地址、hostname、关闭firewalld、Selinux
2)目录规划
上传软件包至:/usr/local下,进行解压方式安装
[root@db01 local]# tar xf mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
#为了方便服务的操作,做软链接。
[root@db01 local]# ln -s mysql-8.0.16-linux-glibc2.12-x86_64 mysql8
#创建服务的数据目录
[root@db01 ~]# mkdir -p /data/mysql/data_3306 #数据路径
#binlog日志路径(日志章节说明)
[root@db01 ~]# mkdir -p /data/mysql/binlog_3306
3)创建用户
[root@db01 ~]# useradd mysql
4)对服务的目录授权
[root@db01 local]# chown -R mysql.mysql /usr/local/mysql8 /data
5)环境变量
[root@db01 local]# vim /etc/profile
最下方添加:
export PATH=/usr/local/mysql8/bin:$PATH
#生效配置
[root@db01 local]# source /etc/profile
#此时可查看到服务的版本信息
[root@db01 bin]# mysql -V
mysql Ver 8.0.16 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)
[root@db01 bin]#
6)残留处理,清除机器其他版本相关服务
安装新版本libaio-devel
[root@db01 bin]# rpm -qa |grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@db01 bin]# yum remove mariadb-libs -y
[root@db01 bin]# yum install -y libaio-devel #安装新版本libaio-devel
7.2)数据库初始化(创建系统库)
[root@db01 data_3306]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql8 --datadir=/data/mysql/data_3306
##--user=mysql --basedir=/usr/local/mysql8 --datadir=/data/mysql/data_3306 这两处服务的路径根据存放位置修改
此提示表示初始化成功
7.3) 配置文件准备
cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
port=3306
basedir=/usr/local/mysql8
datadir=/data/mysql/data_3306
server_id=6
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF
如使用systemd操作此服务,如下操作:
[root@db01 support-files]# cd /usr/local/mysql8/support-files
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld
[root@db01 ~]# chkconfig --add mysqld
7.4)启动服务,设置开机自启
[root@db01 bin]# systemctl start mysqld
[root@db01 bin]# systemctl enable mysqld
mysql-V5.7.26部署安装
1、系统环境准备
1) ip地址、hostname、关闭firewalld、Selinux
2)目录规划
上传软件包至:/usr/local下,进行解压方式安装
[root@db01 local]# tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.xz
#为了方便服务的操作,做软链接。
[root@db01 local]# ln -s mysql-5.7.26-linux-glibc2.12-x86_64 mysql57
#创建服务的数据目录
[root@db01 ~]# mkdir -p /data/mysql/data_3306 #数据路径
#binlog日志路径(日志章节说明)
[root@db01 ~]# mkdir -p /data/mysql/binlog_3306
3)创建用户
[root@db01 ~]# useradd mysql
4)对服务的目录授权
[root@db01 local]# chown -R mysql.mysql /usr/local/mysql57 /data
5)环境变量
[root@db01 local]# vim /etc/profile
最下方添加:
export PATH=/usr/local/mysql57/bin:$PATH
#生效配置
[root@db01 local]# source /etc/profile
#此时可查看到服务的版本信息
[root@db01 bin]# mysql -V
mysql Ver 8.0.16 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)
[root@db01 bin]#
6)残留处理,清除机器其他版本相关服务
安装新版本libaio-devel
[root@db01 bin]# rpm -qa |grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@db01 bin]# yum remove mariadb-libs -y
[root@db01 bin]# yum install -y libaio-devel #安装新版本libaio-devel
7.2)数据库初始化(创建系统库)
[root@db01 data_3306]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/data/mysql/data_3306
##--user=mysql --basedir=/usr/local/mysql57 --datadir=/data/mysql/data_3306 这两处服务的路径根据存放位置修改
此提示表示初始化成功
7.3) 配置文件准备
cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
port=3306
basedir=/usr/local/mysql57
datadir=/data/mysql/data_3306
server_id=6
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF
准备启动脚本,如使用systemd操作此服务,如下操作:
[root@db01 support-files]# cd /usr/local/mysql57/support-files
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld
[root@db01 ~]# chkconfig --add mysqld
查看版本信息
[root@db01 support-files]# mysql -V
mysql Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using EditLine wrapper
7.4)启动服务,设置开机自启
[root@db01 bin]# systemctl start mysqld
[root@db01 bin]# systemctl enable mysqld
第二章体系结构与管理
3.mysql程序结构
3.1 SQL是什么?
结构化查询语言,关系型数据库中的专用命令。
3.2 SQL种类
DDL: 数据定义语言
DCL: 数据控制语言
DML: 数据操作语言
DQL: 数据查询语言
3.3 一条SQL语句的执行逻辑
总共分为三层
连接层、
作用:1.提供连接协议
2.用户验证
3.连接线程(接收SQL语句请求,返回语句执行的结果)
SQL层
作用:1.语法检查
2.语义检查
3.权限验证
4.解析预处理(预算出执行语句的成本或代价)
5.优化器(帮助用户选择最优的执行计划树)
6.执行器(执行优化器给出的计划)
存储引擎层
用来存放数据 (返回数据给SQL层)