oracle mysql 企业版本可选择
企业主流版本: 5.6 5.7 一定要选择GA版本
企业版本新环境建议GA 6 - 12 月的版本
mysql 5.7.26 二进制版规划和部署
https://downloads.mysql.com/archives/community/
官网下载地址,选择适合自己的版本
- 实施
创建相关的目录,用户
/application 软件的存放位置
/data//data 数据的存放位置
useradd -s /sbin/nologin -M mysql
- 解压下载好的mysql并移动到创建好的/application下 修改名字为mysqld
4 数据初始化
mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/3306/data--initialize-insecure #启动非安全模式,进入数据初始化
--initialize #安全模式进入数据初始化,系统会自动创建root密码
--user 指定用户
--basedir #指定软件存放的目录
--datadir #指定数据存放的位置
5修改配置文件 /etc/my.cnf
cat >/etc/my.cnf <<EOF
[mysqld] #服务端标签
user=mysql #用户
basedir=/application/mysql #软件目录
datadir=/data/3306/data #数据目录
socket=/tmp/mysql.sock #socket 本地登录身份文件
[mysql] # 客户端标签
socket=/tmp/mysql.sock
EOF
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF
6.启动服务的命令放到/etc/init.d下
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
修改环境变量
export PATH=/application/mysql/bin:$PATH
centos7环境下mysql.5.7.6 安装完毕,登录还需要修改登录密码
alter user root@'localhost' identified by '123456';
root用户没有密码可能无法登录登录
mysqladmin -uroot -p password ‘123456’
如果想用systemctl启动mysql需要修改配置文件/etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
5.6 版本初始化的方式
/application/mysql/scripts/mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/data/3306/data
同主机版本升级
(1)备份
(2)停原库
(3)安装新版本到新位置
(4)修改环境变量及配置文件
(5)升级数据为新版本(8.0以钱的版本需要执行 mysql_upgrade --force ,8.0 以后不需要 )
mysql 体系结构和管理
1.mysql c/s 模型
client :
socket : 仅本地连接使用
tcp/ip : 应用(nginx)连接使用
2. 实例
mysqld -----》master thread ----》干活的线程 +预分配的内存结构
3. mysqld的程序结构
(1) mysql的专用管理和操作命令sql
DDL :数据定义语言
DCL : 数据控制语言
DML : 数据操作语言
DQL : 数据查询语言
(2) sql语句的执行过程
连接层
(1)提供连接协议
sokcet
tcp/ip
(2)验证可连接性 user password host port
(3)提供连接线程 show processlist; 查看连接线程
功能 接受sql语句,返回结果
sql层
(1)语法检查和sql_MODE检查
(2)语义检查和权限检查
(3)解析预处理,生成解析树(执行计划树)
(4)优化会根据自带算法,评估最优方案(代价模型算法)
代价=资源 (cpu io mem)
(5) 选择最优的方案进行执行sql
(6)提供查询缓存 (默认关闭的)
(7)提供日志记录 :binlog,默认没有开启。
存储引擎层
相当于文件系统,将数据取出,在交给sql层结构化成表,返回给用户