MySQL原本是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被Sun公司收购。2009年,甲骨文公司收购Sun公司,MySQL成为Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统(RDBMS)之一。
1. 数据库产品时代演变
第一代数据库架构:合的时代
RDBMS 关系型数据库时代
代表产品 :Oracle 、MSSQL 、MySQL
第二代数据库架构:拆的时代
NoSQL : Not Only SQL 时代
代表产品: Redis 、MongoDB、ES
第三代数据库架构: 合的时代
NewSQL :新型数据库架构时代
代表产品:
阿里系列: OB 、PolarDB
Pincap : TiDB
google : spanner
2. 熟悉数据库行业
定期参加数据库大会
http://www.db-engines.com
http://www.itdks.com
3. MySQL 产品分支
Oracle MySQL :C版(community 社区)、 E版(enterprise企业)、Cluster版
Percona MySQL :最接近于Oracle MySQL
MariaDB :从5.5+ 以后,10.x +版本
阿里: RDS for MySQL
腾讯: TDSQL
....
4. MySQL的企业版本选择
5.7 : 一般选择最新GA版本 5.7.26 5.7.28
5.6 : GA 6-12月之间的版本
8.0 : 一般选择最新GA版本 8.0.17+
5.6 版本 2020 10月 常规、扩展服务全部停止
5.7 版本 2021 1月 常规服务停止.
5. 获取软件
https://downloads.mysql.com/archives/
检查下载的二进制软件包是否完整无误
[root@db01 ~]#md5sum mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
1daa30a32b99a92062f481bd3ef8694c mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
MD5: 1daa30a32b99a92062f481bd3ef8694c
diff a b
6. MySQL 5728 二进制版本规划和实施
6.1 准备Linux服务器
克隆:Centos 7.6 1核 2G 100G 虚拟机环境
IP: 10.0.0.51/24
hostname:db01
防火墙: 关闭
selinux : 关闭
6.2 MySQL 实施
6.2.1上传软件到指定目录并解压
[root@db01 ~]# mkdir -p /data/app [root@db01 ~]# cd /data/app [root@db01 app]# rz -y mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz [root@db01 app]# tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
6.2.2 创建软链接、修改环境变量
[root@db01 app]# ln -s mysql-5.7.28-linux-glibc2.12-x86_64 mysql [root@db01 app]# echo 'export PATH=$PATH:/data/app/mysql/bin' >>/etc/profile [root@db01 app]# source /etc/profile
6.2.3 验证
[root@db01 app]# mysql -V mysql Ver 14.14 Distrib 5.7.28, for linux-glibc2.12 (x86_64) using EditLine wrapper
6.2.4 清理遗留环境
检查是否有mariadb相关软件
[root@db01 ~]# rpm -qa|grep mariadb
如果有,清理掉
[root@db01 ~]# yum remove mariadb-libs -y
删掉/etc/my.cnf 已有的配置文件
[root@db01 ~]# rm -rf /etc/my.cnf
6.2.5 安装依赖包
[root@db01 ~]# yum install -y libaio-devel
6.2.6 创建相关目录、用户,并做授权
[root@db01 ~]# mkdir -p /data/3306/data [root@db01 ~]# useradd -M -s /sbin/nologin mysql [root@db01 ~]# chown -R mysql.mysql /data
6.2.7 初始化数据
5.7+ 版本初始化 :
[root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql --datadir=/data/3306/data
有可能的报错:
1. libaio-devel 没有安装依赖
2. [ERROR] --initialize specified but the data directory has files in it. Aborting. 数据目录有文件
rm -rf /data/3306/data/*
6.2.8 准备配置文件
vim /etc/my.cnf [mysqld] user=mysql basedir=/data/app/mysql datadir=/data/3306/data socket=/tmp/mysql.sock [mysql] socket=/tmp/mysql.sock
6.2.9 准备启动脚本,启动数据库
[root@db01 data]# cp /data/app/mysql/support-files/mysql.server /etc/init.d/mysqld [root@db01 data]# chkconfig --add mysqld [root@db01 data]# systemctl start mysqld