RHEL8 CentOS8 下安装 MySQL 8.0

介绍

RHEL 8 默认发布的MySQL版本8.0,它具有以下新功能:

1. 性能:MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。MySQL 8.0 带来了更好的性能**

2. NoSQL:MySQL 从 5.7 版本开始提供 NoSQL 存储功能,目前在 8.0 版本中这部分功能也得到了更大的改进。该项功能消除了对独立的 NoSQL 文档数据库的需求,而 MySQL 文档存储也为 schema-less 模式的 JSON 文档提供了多文档事务支持和完整的 ACID 合规性。

3. 窗口函数(Window Functions):从 MySQL 8.0 开始,新增了一个叫窗口函数的概念,它可以用来实现若干新的查询方式。

4. 隐藏索引:在 MySQL 8.0 中,索引可以被“隐藏”和“显示”。当对索引进行隐藏时,它不会被查询优化器所使用。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响。如果数据库性能有所下降,说明这个索引是有用的,然后将其“恢复显示”即可;如果数据库性能看不出变化,说明这个索引是多余的,可以考虑删掉。

5. 降序索引:MySQL 8.0 为索引提供按降序方式进行排序的支持,在这种索引中的值也会按降序的方式进行排序。

6. 通用表表达式(Common Table Expressions CTE):在复杂的查询中使用嵌入式表时,使用 CTE 使得查询语句更清晰。

7. UTF-8 编码:从 MySQL 8 开始,使用 utf8mb4 作为 MySQL 的默认字符集。

8. JSON:MySQL 8 大幅改进了对 JSON 的支持。

9. 可靠性:InnoDB 现在支持表 DDL 的原子性。

10. 高可用性(High Availability):InnoDB 集群为您的数据库提供集成的原生 HA 解决方案。

11. 安全性:对 OpenSSL 的改进、新的默认身份验证、SQL 角色、密码强度、授权。

目前 RHEL8 和 CentOS8 引用新的软件源方式——APPStream,针对非系统核心的软件可以让其保持支持主流版本的能力,以及满足部分客户同一个软件想同时安装不同版本的需求。

因此后续,RHEL 和 CentOS 8会 MySQL 8.1 或者 9 稳定版发布后提供收到官方支持的软件源安装支持。

安装

一、(可选)如果主机内存小于1G需要设置 SWAP,不然无法启动 MySQL。 MySQL 8.0 的 InnoDB 很吃内存。

curl -o create-swap.sh https://gist.githubusercontent.com/ivmm/1ecb35c74caef54727cdd9798dfb72bd/raw/5e697441ba6784f04d674556462478e0e64a317a/create-swap.sh
sh create-swap.sh 1G// 1G设置1G交换内存,可以自定义

二、安装 MySQL8.0

yum install @mysql:8.0 -y

三、启动 MySQL8.0 服务和开启启动

systemctl start mysqld
systemctl enable mysqld

四、安全初始化,设置Root密码和进行安全设置

mysql_secure_installation

基本介绍:
Enter current password for root (enter for none):
解释:输入当前 root 用户密码,默认为空,直接回车。
Set root password? [Y/n] y > > 解释:要设置 root 密码吗?输入 y 表示愿意。
Remove anonymous users? [Y/n] y
解释:要移除掉匿名用户吗?输入 y 表示愿意。
Disallow root login remotely? [Y/n] y
解释:不想让 root 远程登陆吗?输入 y 表示愿意。
Remove test database and access to it? [Y/n] y
解释:要去掉 test 数据库吗?输入 y 表示愿意。
Reload privilege tables now? [Y/n] y
解释:想要重新加载权限吗?输入 y 表示愿意。

RHEL 8 下的 MySQL 8.0 使用mysql_native_password作为默认的身份验证算法,而不是默认的 caching_sha2_password ,如果依赖于新算法,需要手动修改 /etc/my.cnf.d/mysql-default-authentication-plugin.cnf 文件

一、 登入数据库查看是否安装成功

mysql -u root -p

然后输入密码后登录

二、简单查个版本号校验一下

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.13    |
+-----------+
1 row in set (0.00 sec)

文件地址

MySQL 位置 路径 备注
my.cnf /etc/my.cnf.d/mysql-server.cnf /etc/my.cnf 是个空文件
目录 /var/lib/mysql
socket /var/lib/mysql/mysql.sock
错误日志 /var/log/mysql/mysqld.log
PID文件 /run/mysqld/mysqld.pid

RHEL8 CentOS8 下安装 MariaDB 10.3 10.4 请参考:
https://bbs.mf8.biz/rhel8-centos8-install-mariadb/