# 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 SSDPCI-E、Flash
- 关闭THP 释放内存
- 网卡绑定技术 多路冗余
- 烤机压测
    stress 压测:连续15-30天,观测系统日志,评估CPUMEM、整体是否稳定
    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
上次更新: 1/30/2023, 12:27:29 PM