Centos7.9系统MySQL5.7.32升级为5.7.44(生成环境操作)

本文详细描述了在CentOS7环境中,针对mysql数据库的高危漏洞进行升级修复的过程,包括环境检查、数据备份、配置文件备份、升级步骤、服务重启及升级后的检查方法。

1.背景

由于客户进行等保漏扫和渗透,生成环境mysql数据库被扫描出了 高危漏洞。
如图:部分漏洞
在这里插入图片描述

查看漏洞详细信息,建议升级到指定版本解决:
在这里插入图片描述
说明
本文仅适合使用当前数据库为 RPM 安装方式

2.升级前准备

查看环境当前版本:

查看系统版本:
# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
查看mysql版本:
# mysql -V
mysql  Ver 14.14 Distrib 5.7.32, for Linux (x86_64) using  EditLine wrapper

mysql数据备份:

mysql备份所有数据库:
# mysqldump -u your_username -pyour_password --single-transaction --all-databases > backup20240426.sql
备份mysql数据目录:
# cp -r /var/lib/mysql mysql20240426

mysql配置文件备份:

备份mysql配置文件my.cnf
# cp -r /etc/my.cnf my.cnf20240426

下载软件包:
链接: 官方下载地址
在这里插入图片描述
为了方便,直接下载完整的tar包:
https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar

3.升级操作

停止数据库服务:

命令操作:
# systemctl stop mysqld

按照如下顺序升级安装mysql:

命令操作:
# rpm -Uvh mysql-community-common-5.7.44-1.el7.x86_64.rpm --nodeps
warning: mysql-community-common-5.7.44-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-common-5.7.44-1.e################################# [ 50%]
Cleaning up / removing...
   2:mysql-community-common-5.7.32-1.e################################# [100%]
# rpm -Uvh mysql-community-libs-5.7.44-1.el7.x86_64.rpm --nodeps
warning: mysql-community-libs-5.7.44-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-libs-5.7.44-1.el7################################# [ 50%]
Cleaning up / removing...
   2:mysql-community-libs-5.7.32-1.el7################################# [100%]
# rpm -Uvh mysql-community-client-5.7.44-1.el7.x86_64.rpm --nodeps
warning: mysql-community-client-5.7.44-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-client-5.7.44-1.e################################# [ 50%]
Cleaning up / removing...
   2:mysql-community-client-5.7.32-1.e################################# [100%]
# rpm -Uvh mysql-community-server-5.7.44-1.el7.x86_64.rpm --nodeps
warning: mysql-community-server-5.7.44-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-server-5.7.44-1.e################################# [ 50%]
Cleaning up / removing...
   2:mysql-community-server-5.7.32-1.e################################# [100%]
注意:
如果先更新server,可能会出现缺失依赖问题。

启动mysql服务:

命令操作:
# systemctl start mysqld

升级表结构:

命令操作:
# mysql_upgrade -u you_username -pyou_passsword
mysql_upgrade: [Warning] Using a password on the command line interface can be insecure.
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv                                 OK
mysql.db                                           OK
.
.
.
Upgrade process completed successfully.
Checking if update is needed.

注意:
此时需要数据库用户名和密码

升级完成后重启mysql服务

命令操作:
# systemctl restart mysqld

4.升级后检查

mysql版本检查:

命令操作:
# mysql -V
mysql  Ver 14.14 Distrib 5.7.44, for Linux (x86_64) using  EditLine wrapper

随机验证数据库表和数据:

SELECT COUNT(*) AS table_count FROM information_schema.tables WHERE table_schema = 'database_name';
-- 已知结果:42
select count(*) from database_name.table_name;
-- 已知结果: 41

SELECT COUNT(*) AS table_count FROM information_schema.tables WHERE table_schema = 'database_name';
-- 已知结果: 93
select count(*) from database_name.table_name;
-- 已知结果: 40

SELECT COUNT(*) AS table_count FROM information_schema.tables WHERE table_schema = 'database_name';
-- 已知结果:50
select count(*) from database_name.table_name;
-- 已知结果:55

说明:
通过验证升级后数据正常,本次mysql升级成功。

### 安装 MySQL 5.7.44 的方法 #### 方法一:通过二进制包手动安装 可以下载官方提供的二进制版本 `mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz` 并将其解压至指定目录 `/data` 下[^2]。 以下是具体操作流程: 1. **创建用户和组** 创建专门用于运行 MySQL 的用户和组,以提高安全性。 ```bash groupadd mysql useradd -r -g mysql -s /bin/false mysql ``` 2. **上传并解压缩文件** 将已下载的二进制包上传到服务器上的 `/data` 目录,并执行解压命令。 ```bash tar zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ ln -s /usr/local/mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql chown -R mysql:mysql /usr/local/mysql ``` 3. **初始化数据库** 初始化数据目录以便后续启动服务。 ```bash cd /usr/local/mysql bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ``` 4. **配置环境变量** 修改 `.bashrc` 文件或者直接编辑全局路径设置。 ```bash echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile source /etc/profile ``` 5. **调整权限与启动服务** 设置必要的访问控制列表以及开机自启功能。 ```bash cp support-files/mysql.server /etc/init.d/mysql chmod +x /etc/init.d/mysql systemctl daemon-reload service mysql start ``` --- #### 方法二:利用 RPM 包管理器自动安装 另一种方式是借助 Red Hat 软件包管理系统来完成安装过程。此法相对简便快捷,适合初学者尝试。 1. **导入公钥** 需要先获取官方认证密钥才能验证软件真实性。 ```bash sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 ``` 2. **添加 Yum 存储库** 添加适用于 CentOS 7MySQL 社区版存储库定义。 ```bash wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm sudo rpm -Uvh mysql57-community-release-el7-11.noarch.rpm yum repolist enabled | grep "mysql.*-community" ``` 3. **正式安装程序** 执行标准的 YUM 命令即可实现自动化部署目标版本号为 5.7.44 的实例。 ```bash sudo yum install -y mysql-community-server-5.7.44-1.el7.x86_64 ``` 4. **开启服务并检查状态** 启动新安装的服务进程并且确认其正常运作情况。 ```bash systemctl enable mysqld.service systemctl start mysqld.service systemctl status mysqld.service ``` 最后可以通过如下指令查询当前正在使用的 Mysql 版本信息: ```bash mysql -V ``` --- ### 注意事项 确保操作系统满足最低硬件需求的同时关闭 SELinux 或者适当放宽策略以免干扰正常工作流;另外防火墙规则也需要相应开放端口(默认情况下监听的是 TCP/IP 协议下的 3306 号端口)。如果遇到任何错误提示,请参照官方文档进一步排查原因[^4]。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值