MySQL8.4.0发布,预计MySQL 9.0将是下一个创新版本

2,754 阅读3分钟
作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验
擅长主流数据Oracle、MySQL、PG、openGauss运维
备份恢复,安装迁移,性能优化、故障应急处理等

可提供技术业务:
1.DB故障处理/疑难杂症远程支援
2.Mysql/PG/Oracle/openGauss
数据库部署及数仓搭建
•••
微信:jem_db
QQ交流群:587159446
公众号:IT邦德
•••

@TOC

前言

MySQL8.4.0发布,预计MySQL 9.0将是下一个创新版本

1.MySQL8版本变更

Oracle每季度发布一次MySQL更新,我平时也一直留意的官网的动态,2024年1月16推出了最新的 MySQL 8.3 版本,MySQL大约每2年发布一个新的长期支持版本(如下图蓝色所示),8.4 LTS 版本在2024年4月30日已经发布,预计MySQL 9.0将是下一个创新版本。

MySQL发布模型分为两个主要轨道:LTS(长期支持)和创新。所有LTS和Innovation版本都包含错误和安全修复,并被视为生产级质量。

2.MySQ 8.4.0变更

更多内容查阅官网
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/index.html

最醒目的一个变动就是
从 MySQL 8.4.0 开始,mysql_native_password 认证插件默认不再启用。
若要启用,需要在MySQL启动的时候,添加--mysql-native-password=ON 参数;
或在配置文件中设置 mysql_native_password=ON。

MySQL 8.4,还调整了与 InnoDB 存储引擎相关的多个服务器系统变量的默认值
其余的一些变更,大家详细的阅读官网即可

3.MySQ 8.4.0 新版体验

3.1 安装包下载

MySQL的安装方式很多,
这里我们通过二进制的方式安装,
从官网下载对应的版本即可
https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.0-1.el8.x86_64.rpm-bundle.tar

3.2 安装依赖

yum -y install lrzsz wget perl-Digest-MD5
yum -y install numactl
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make

3.3 添加用户及组

[root@rhel8 ~]# groupadd mysql
[root@rhel8 ~]# useradd -g mysql -d /home/mysql mysql
[root@rhel8 ~]# passwd mysql

3.4 安装包上传解压

1.压缩包校验
 md5sum mysql-8.4.0-1.el8.x86_64.rpm-bundle.tar
6b75d69b710aac33e610df92b7f60a3b  mysql-8.4.0-1.el8.x86_64.rpm-bundle.tar

2.解压
tar -xvf mysql-8.4.0-1.el8.x86_64.rpm-bundle.tar -C /home/mysql/


3.授权
chown -R mysql:mysql /home/mysql/

--说明
mysql-community-common-8.4.0-1.el8.x86_64.rpm
mysql-community-libs-8.4.0-1.el8.x86_64.rpm
mysql-community-client-8.4.0-1.el8.x86_64.rpm
mysql-community-server-8.4.0-1.el8.x86_64.rpm

3.5 正式安装

安装顺序:包之间相互依赖,所以必须注意安装顺序
✓ 先装 common 
✓ 再装 libs
✓ 再装 client
✓ 最后装 server

注:root用户下操作
[root@rhel8 ~]# cd /home/mysql

rpm -ivh  mysql-community-common-8.4.0-1.el8.x86_64.rpm
rpm -ivh --force --nodeps mysql-community-libs-8.4.0-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.4.0-1.el8.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-server-8.4.0-1.el8.x86_64.rpm --force --nodeps

[root@rhel8 mysql]# rpm -qa | grep mysql
mysql-community-client-8.4.0-1.el8.x86_64
mysql-community-libs-8.4.0-1.el8.x86_64
mysql-community-server-8.4.0-1.el8.x86_64
mysql-community-common-8.4.0-1.el8.x86_64

3.6 初始化

[root@rhel8 ~]# mysqld --initialize

--参数文件中新增
echo "mysql_native_password=ON" >> /etc/my.cnf

4.启动 MySQL 服务

4.1 授权启动

1.授权
chown mysql:mysql /var/lib/mysql -R

2.启动服务
systemctl start mysqld
systemctl status mysqld
systemctl enable mysqld

4.2 登陆新增用户

## 临时密码登陆
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p

## 修改本地用户密码
mysql> alter user root@'localhost' identified with mysql_native_password by 'root';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select Host,User from mysql.user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
4 rows in set (0.00 sec)

##新增远程登陆
mysql> create user root@'%' identified with mysql_native_password by 'root';
mysql> grant all on *.* to root@'%' with grant option;
mysql> flush privileges;

5.升级说明

在LTS系列中,功能保持不变,数据格式不变,因此可以在LTS系列内进行就地升级和降级。 例如,MySQL 8.4.0可以升级到更高版本的MySQL 8.4.x。还提供了其他升级和降级方法,例如克隆插件。 支持升级到下一个LTS系列,如8.4.x LTS到9.7.x LTS,而不支持跳过LTS系列。例如,8.4.x LTS不能跳过9.7.x LTS直接升级到10.7.x LTS。

6.总结

Oracle每季度发布一次MySQL更新,让我持续关注MySQL的发展