准备
- 系统版本
CentOS Linux 7
- 由于Oracle MySQL Enterprise Monitor远程安全漏洞(CVE-2022-37865),需要将MySQL8.0.34到8.1.0
- 此次升级仅适用于rpm方式安装的MySQL
- 下载最新安装包:https://dev.mysql.com/downloads/mysql
Select Version
:选择MySQL版本8.1.0Select Operating System
:选择Red Hat Enterprise Linux / Oracle Linux
Select OS Version
:根据实际的系统和处理器架构选择
备份数据
- 备份数据库,执行
mysqldump -h localhost -P 3306 -u 用户名 -p 数据库名 > /home/backup.sql
- 备份
my.cnf
配置文件,执行cp /etc/my.cnf /etc/my_backup.cnf
升级
- 将下载的安装包
mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar
上传到服务器/usr/local/mysql
目录下,没有目录先执行mkdir /usr/local/mysql
创建目录 - 如果
/usr/local/mysql
目录下有旧版本的文件,则先执行rm -f /usr/local/mysql/*
清空文件夹,再上传安装包 - 执行
cd /usr/local/mysql
进入目录 - 执行
tar -xvf mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar
解压安装包 - 执行
rpm -Uvh mysql-community-*
升级,结果如下:
[root@localhost mysql]# rpm -Uvh mysql-community-*
警告:mysql-community-client-8.1.0-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-common-8.1.0-1.el################################# [ 4%]
2:mysql-community-client-plugins-8.################################# [ 8%]
3:mysql-community-libs-8.1.0-1.el7 ################################# [ 13%]
4:mysql-community-client-8.1.0-1.el################################# [ 17%]
5:mysql-community-icu-data-files-8.################################# [ 21%]
6:mysql-community-server-8.1.0-1.elwarning: /etc/my.cnf created as /etc/my.cnf.rpmnew
################################# [ 25%]
7:mysql-community-server-debug-8.1.################################# [ 29%]
8:mysql-community-test-8.1.0-1.el7 ################################# [ 33%]
9:mysql-community-devel-8.1.0-1.el7################################# [ 38%]
10:mysql-community-libs-compat-8.1.0################################# [ 42%]
11:mysql-community-embedded-compat-8################################# [ 46%]
12:mysql-community-debuginfo-8.1.0-1################################# [ 50%]
正在清理/删除...
13:mysql-community-devel-8.0.34-1.el################################# [ 54%]
14:mysql-community-debuginfo-8.0.34-################################# [ 58%]
15:mysql-community-test-8.0.34-1.el7################################# [ 63%]
16:mysql-community-server-debug-8.0.################################# [ 67%]
17:mysql-community-server-8.0.34-1.e################################# [ 71%]
18:mysql-community-client-8.0.34-1.e################################# [ 75%]
19:mysql-community-libs-compat-8.0.3################################# [ 79%]
20:mysql-community-libs-8.0.34-1.el7################################# [ 83%]
21:mysql-community-embedded-compat-8################################# [ 88%]
22:mysql-community-common-8.0.34-1.e################################# [ 92%]
23:mysql-community-icu-data-files-8.################################# [ 96%]
24:mysql-community-client-plugins-8.################################# [100%]
- 执行
rpm -qa | grep mysql
验证是否安装,结果如下:
[root@localhost mysql]# rpm -qa | grep mysql
mysql-community-common-8.1.0-1.el7.x86_64
mysql-community-devel-8.1.0-1.el7.x86_64
mysql-community-client-8.1.0-1.el7.x86_64
mysql-community-debuginfo-8.1.0-1.el7.x86_64
mysql-community-libs-8.1.0-1.el7.x86_64
mysql-community-embedded-compat-8.1.0-1.el7.x86_64
mysql-community-client-plugins-8.1.0-1.el7.x86_64
mysql-community-server-8.1.0-1.el7.x86_64
mysql-community-libs-compat-8.1.0-1.el7.x86_64
mysql-community-icu-data-files-8.1.0-1.el7.x86_64
mysql-community-test-8.1.0-1.el7.x86_64
mysql-community-server-debug-8.1.0-1.el7.x86_64
- 执行
mysql --version
查看版本
[root@localhost mysql]# mysql --version
mysql Ver 8.1.0 for Linux on x86_64 (MySQL Community Server - GPL)
- 登陆数据库并验证数据
[root@ngd-app1 mysql]# mysql -h localhost -P 3306 -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.1.0 MySQL Community Server - GPL
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use ngd;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select count(*) from jc_user;
+----------+
| count(*) |
+----------+
| 3 |
+----------+
1 row in set (0.00 sec)