1. 概述
MySQL升级的方式有两种:
- In-place upgrade:
适合小版本的升级。
即 关闭当前的MySQL,替换当前的二进制文件或包,在现有的数据目录上重启MySQL,并运行mysql_upgrade.
特点:不改变数据文件,升级速度快;但,不可以跨操作系统,不可以跨大版本(5.5—>5.7).
- Logical upgrade
适合不同操作系统的MySQL升级,大版本之间的升级。
即:使用mysqldump 或 mydumper 导入导出数据,实现版本的升级。
特点:可以跨操作系统,跨大版本;但,升级速度慢,容易出现乱码等问题。
2. 过程
目标: 从MySQL 5.7.31 升级到 MySQL 5.7.35。 采用 In-place upgrade方式。
- 备份数据,并关闭原数据库。
# 关闭前,执行设置该参数
SET GLOBAL innodb_fast_shutdown=0
- Httpd制作新版本的MySQL本地源
[root@t10 ~]# createrepo /var/www/html/yum/zoo/
Spawning worker 0 with 3 pkgs
Spawning worker 1 with 2 pkgs
Spawning worker 2 with 2 pkgs
Spawning worker 3 with 2 pkgs
Workers Finished
[root@t10 ~]# ll /var/www/html/yum/zoo/
-rw-r--r--. 1 root root 26658592 Jun 8 17:15 mysql-community-client-5.7.35-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 317800 Jun 8 17:15 mysql-community-common-5.7.35-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 2473348 Jun 8 17:15 mysql-community-libs-5.7.35-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 1263816 Jun 8 17:15 mysql-community-libs-compat-5.7.35-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 182213816 Jun 8 17:15 mysql-community-server-5.7.35-1.el7.x86_64.rpm
drwxr-xr-x. 2 root root 4096 Sep 10 17:04 repodata
[root@t10 ~]# cat /etc/yum.repos.d/yum-zoo.repo
[YUM-ZOO]
name=YUM-ZOO
baseurl=http://t10:8008/yum/zoo
enabled=1
gpgcheck=0
- Yum方式验证MySQL可更新
[root@t10 ~]# yum check-update
...
mysql-community-client.x86_64 5.7.35-1.el7 YUM-ZOO
mysql-community-common.x86_64 5.7.35-1.el7 YUM-ZOO
mysql-community-libs.x86_64 5.7.35-1.el7 YUM-ZOO
mysql-community-libs-compat.x86_64 5.7.35-1.el7 YUM-ZOO
mysql-community-server.x86_64 5.7.35-1.el7 YUM-ZOO
....
- Yum方式更新
[root@t10 ~]# yum install mysql-community-server mysql-community-client mysql-community-common mysql-community-libs mysql-community-libs-compat
...
Dependencies Resolved
===========================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================
Updating:
mysql-community-client x86_64 5.7.35-1.el7 YUM-ZOO 25 M
mysql-community-common x86_64 5.7.35-1.el7 YUM-ZOO 310 k
mysql-community-libs x86_64 5.7.35-1.el7 YUM-ZOO 2.4 M
mysql-community-libs-compat x86_64 5.7.35-1.el7 YUM-ZOO 1.2 M
mysql-community-server x86_64 5.7.35-1.el7 YUM-ZOO 174 M
Transaction Summary
===========================================================================================================================
Upgrade 5 Packages
...
- 更新完毕,检查
/etc/my.cnf中配置仍然沿用之前的值,数据库中的内容也没有改变,用户名、密码没变。
[root@t10 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.35 MySQL Community Server (GPL)