阿里龙晰系统上将yum安装的myql_8.0.36升级到mysql_8.4.0的过程

本文主要是介绍阿里龙晰系统上将yum安装的myql_8.0.36升级到mysql_8.4.0的过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

阿里龙晰系统上将yum安装的myql_8.0.36升级到mysql_8.4.0的过程

本章内容介绍了在阿里龙晰系统上修复 Oracle MySQL 安全漏洞CVE-2024-21176、CVE-2024-21177、CVE-2024-21179的过程。

说明:

  • Oracle MySQL 安全漏洞(CVE-2024-21176):oracle:mysql_server 8.0.36 <= 8.4.0,解决方案是将Mysql升级到 8.4.0。
  • Oracle MySQL 安全漏洞(CVE-2024-21177):oracle:mysql_server 8.0.36 <= 8.0.37,解决方案是将Mysql升级到 8.0.37。
  • Oracle MySQL 安全漏洞(CVE-2024-21179):oracle:mysql_server 8.0.36 <= 8.0.37,解决方案是将Mysql升级到 8.0.37。

目录

  • 阿里龙晰系统上将yum安装的myql_8.0.36升级到mysql_8.4.0的过程
  • 一、背景概述
  • 二、环境信息
    • 1、服务器信息
    • 2、系统盘分区
  • 三、升级mysql数据库
    • 1、查看当前系统及mysql版本
    • 2、将mysql数据库中的数据进行备份
    • 3、停止mysql服务 并 卸载mysql
    • 4、下载并安装新版mysql_v8.4.0
    • 5、创建mysql所需要的目录文件
    • 6、创建mysql的配置文件
    • 7、配置systemctl 管理mysql 数据库服务
    • 8、配置环境变量
    • 9、初始化数据库

一、背景概述

在部署时采用yum install进行的安装,版本是8.0.36,部署完成后进行安全漏洞扫描时,发现了上面【说明:】部分罗列的漏洞,其过程存在很多波折,但是升级成功后进行复盘时,主要的问题是我自己在配置参数时没有配置对的问题,不存在系统级别的问题,所以将整个过程编写出来,为同样经历的同学提供此思路和帮助。
用yum安装8.0.36(存在漏洞的mysql版本)的命令

[root@mysqlserver ~]# yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
[root@mysqlserver ~]# yum install mysql-server

二、环境信息

1、服务器信息

主机名IP系统CPU内存系统盘分配挂载硬盘功能
mysqlserverxxx.xxx.x.xAnolis OS 8.9_x86-64bit816128GB300G数据库服务

2、系统盘分区

主机名系统盘/bootSWAP/data盘
mysqlserver256GB2GB16GB118GB300G

三、升级mysql数据库

1、查看当前系统及mysql版本

[root@mysqlserver ~]# mysql -uroot -p
Enter password: Zwkj@820921mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.36    |
+-----------+
1 row in set (0.00 sec)mysql> exit

注:根据glibc的版本下载MySql的版本

[root@mysqlserver ~]# ldd --version
ldd (GNU libc) 2.28
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

2、将mysql数据库中的数据进行备份

通过Navicat客户端,将Mysql数据库中的数据同步到本机数据库中

3、停止mysql服务 并 卸载mysql

[root@mysqlserver ~]# systemctl status mysqld
[root@mysqlserver ~]# systemctl stop mysqld
[root@mysqlserver ~]# systemctl status mysqld
[root@mysqlserver ~]# systemctl disable mysqld
[root@mysqlserver ~]# yum remove mysql mysql-server
[root@mysqlserver ~]# rm -rf /var/lib/mysql/
[root@mysqlserver ~]# rm -rf /etc/my.cnf.d
[root@mysqlserver ~]# mv /data/mysql /data/mysql_bak

4、下载并安装新版mysql_v8.4.0

[root@mysqlserver ~]# cd /data
[root@mysqlserver data]# mkdir mysql
[root@mysqlserver data]# cd mysql
[root@mysqlserver mysql]# mkdir data
[root@mysqlserver mysql]# mkdir log
[root@mysqlserver mysql]# cd ..
[root@mysqlserver data]# chown -R mysql.mysql ./mysql [root@mysqlserver ~]# cd /opt
[root@mysqlserver opt]# wget https://cdn.mysql.com/archives/mysql-8.4/mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz
[root@mysqlserver opt]# tar -xf mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz 
[root@mysqlserver opt]# mv ./mysql-8.4.0-linux-glibc2.28-x86_64 ./mysql
[root@mysqlserver opt]# mv ./mysql /usr/local/mysql

5、创建mysql所需要的目录文件

[root@mysqlserver opt]# cd /usr/local/mysql
[root@mysqlserver mysql]# mkdir data
[root@mysqlserver mysql]# cd..
[root@mysqlserver local]# chown -R mysql.mysql ./mysql
[root@mysqlserver local]# touch  /usr/local/mysql/log/error.log

6、创建mysql的配置文件

[root@mysqlserver local]# vim /etc/my.cnf

/etc/my.cnf配置文件

[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
server_id=1
port=3306
socket=/tmp/mysql.sock
symbolic-links=0
# mysql8.4.0需要添加该参数
mysql-native-password=ONlower_case_table_names=1
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci[mysql]
socket=/tmp/mysql.sock[mysqld_safe]
log-error=/data/mysql/log/error.log
pid-file=/usr/local/mysql/mysql.pid[client]
port=3306
socket=/tmp/mysql.sock

7、配置systemctl 管理mysql 数据库服务

vim /etc/systemd/system/mysqld.service

/etc/systemd/system/mysqld.service配置文件内容

[Unit]
Description=Mysql
After=syslog.target network.target remote-fs.target nss-lookup.target[Service]
Type=forking
#PIDFile=/usr/local/mysql/mysql8420/data/localhost.localdomain.pid
ExecStart=/usr/local/mysql/support-files/mysql.server start
#ExecReload=/bin/kill -s HUP $MAINPID
ExecReload=/usr/local/mysql/support-files/mysql.server restart
#ExecStop=/bin/kill -s QUIT $MAINPID
ExecStop=/usr/local/mysql/support-files/mysql.server stop
PrivateTmp=falseUser=mysql
Group=mysql[Install]

8、配置环境变量

[root@mysqlserver local]# vim /etc/profile

在/etc/profile配置文件末尾添加配置

export PATH=/usr/local/mysql/bin:$PATH
[root@mysqlserver local]# source /etc/profile

9、初始化数据库

[root@mysqlserver local]# cd /usr/local/mysql/bin
[root@mysqlserver bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
# 数据库初始化完成后日志中会输出,数据库生成的默认密码: root@localhost: 5rOjaUH?W49=
[root@mysqlserver bin]# systemctl start mysqld
[root@mysqlserver bin]# systemctl status mysqld
[root@mysqlserver bin]# mysql -uroot -p
# 输入数据库生成的默认密码:5rOjaUH?W49=
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket BY '123456';
mysql> use mysql;
mysql> update user set Host='%' where User='root';
mysql> flush privileges;
mysql> exit;
[root@mysqlserver bin]# systemctl stop mysqld
[root@mysqlserver bin]# systemctl start mysqld

这篇关于阿里龙晰系统上将yum安装的myql_8.0.36升级到mysql_8.4.0的过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120652

相关文章

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

MySQL错误代码2058和2059的解决办法

《MySQL错误代码2058和2059的解决办法》:本文主要介绍MySQL错误代码2058和2059的解决办法,2058和2059的错误码核心都是你用的客户端工具和mysql版本的密码插件不匹配,... 目录1. 前置理解2.报错现象3.解决办法(敲重点!!!)1. php前置理解2058和2059的错误

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T