作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万+ 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复, 安装迁移,性能优化、故障应急处理 微信:jem_db QQ交流群:587159446 公众号:IT邦德
1.MySQL版本变更
Oracle 每季度发布一次 MySQL 更新,我平时也一直留意的官网的动态,2024年1月16推出了最新的 MySQL 8.3 版本,MySQL大约每2年发布一个新的长期支持版本(如下图蓝色所示),8.4.0 LTS 版本在2024年4月30日已经发布,预计MySQL 9.0将是下一个创新版本。
MySQL发布模型分为两个主要轨道:LTS(长期支持)和创新。所有LTS和Innovation版本都包含错误和安全修复,并被视为生产级质量。

2.MySQ 8.4变更
内容来自: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新版体验
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。
