# Day01 MySQL 概述与安装
# 本节关键词
主流数据库
安装MySQL
# 数据库产品演进
- 第一代数据库架构产品:传统的关系型数据库主导
- 第二代数据库架构产品:传统关系型数据库+NoSQL多厂家产品配合使用
- 第三代数据库架构产品:NewSQL(关系型+NoSQL+大数据+分布式架构完整解决方案)
- 第四代数据库架构产品:国产化 + HTAP
# 主流数据库产品
- RDBMS:Oracle、MySQL、PG
- NoSQL:MongoDB、Redis、ElasticSearch
- NewSQL: OceanBase、TiDB
- 云数据库:Aliyun RDS、DRDS、PolarDB、腾讯云、TDSQL
推荐网站
# MySQL 环境标准化
新业务版本:8.0.24+
升级版本:5.7.34+
建议CPU:MEM 1:4+
低配需求 8C 32G+ 500以内连接数 QPS 1-500 TPS 1-100
标配需求 16C 64G+ 1000以内连接数 QPS 500-1000 TPS 100-200
高配需求 64C 256G
CentOS7.2以上双数版本
# 参数调整
- numa cpu是否平分mem,mysql可以独立管理mem,所以可关闭numa
在os层numa关闭时,打开bios层的numa会影响性能,QPS会下降15-30%
show variables like '%numa%';
- 开启CPU高性能模式 BIOS
- RAID10(推荐)
SAS SSD、PCI-E、Flash
- 关闭THP 释放内存
- 网卡绑定技术 多路冗余
- 烤机压测
stress 压测:连续15-30天,观测系统日志,评估CPU、MEM、整体是否稳定
fio 压测:主要评估IOPS、吞吐量进行各维度统计,如16k 70%读取、30%写入比较合适
最终建议:
5734 核心业务
8026 边缘业务,学习测试是一个不错的版本选择
https://dev.mysql.com/downloads/mysql/ --> Linux - Generic x86 64-bit
- QPS 每秒请求数
- TPS 每秒事务数
# MySQL 安装
- CentOS7环境搭建MySQL-8.0.26
# 下载
cd /opt
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
# 校验md5值
[root@ni-ning opt]# md5sum mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
100a0e9336ef106a5fe90e6803b57066 mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
# 解压
tar vxf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
ln -s /opt/mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql
# 环境变量
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile
# 查看版本
mysql -V
# 创建数据目录,并授权
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mkdir -p /data/3306/data
chown -R mysql.mysql /data
# 创建配置文件
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
server_id=51
[mysql]
socket=/tmp/mysql.sock
# 初始化数据
mysqld --initialize-insecure
# 报错 yum install -y libaio
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
--initialize:初始化时,自动创建超级管理员root@localhost,密码随机,第一次登录时必须需改
--initialize-insecure:
[Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
# 启动
cd /usr/local/mysql/support-files
./mysql.server start
# 快捷方式 service 推荐方式
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld restart
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
/etc/init.d/mysqld status
# 快捷方式 systemctl - 先关闭
service mysqld stop
systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld