MySQL rpm安装 升级

背景

之前数据库的安装是通下载mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar中的rpm包,进行安装的,现在发现5.7.22版本有许多的安全漏洞,需要升级到最新版5.7.31版;在这里记录一下通过rpm方式升级MySQL

下载最新版的MySQL安装包

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-1.el6.x86_64.rpm-bundle.tar

解压
tar -xvf mysql-5.7.31-1.el6.x86_64.rpm-bundle.tar
把需要升级的rpm包放到一个目录

-rw------- 1 root root 25820440 Jun 3 18:07 mysql-community-client-5.7.31-1.el6.x86_64.rpm -rw------- 1 root root 378784 Jun 3 18:07 mysql-community-common-5.7.31-1.el6.x86_64.rpm -rw------- 1 root root 3891548 Jun 3 18:07 mysql-community-devel-5.7.31-1.el6.x86_64.rpm -rw------- 1 root root 2511392 Jun 3 18:07 mysql-community-libs-5.7.31-1.el6.x86_64.rpm -rw------- 1 root root 169502800 Jun 3 18:08 mysql-community-server-5.7.31-1.el6.x86_64.rpm

升级

查看当前版本

方式一:mysql -V
方式二:rpm -qa |grep -i mysql
记录当前版本信息

[root@localhost]# rpm -qa |grep -i mysql mysql-community-common-5.7.22-1.el6.x86_64 mysql-community-server-5.7.22-1.el6.x86_64 mysql-community-client-5.7.22-1.el6.x86_64 mysql-community-libs-5.7.22-1.el6.x86_64 mysql-community-devel-5.7.22-1.el6.x86_64

备份

mysqldump -u root -p --add-drop-table --routines --events --all-databases --force > upgrade.sql
备份配置文件
cp /etc/my.cnf /etc/my.cnf.bak

设置参数使数据库关闭时会清空缓存避免版本间缓存格式差异

mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0

关闭数据库(如果在升级安装开始时MySQL服务器正在运行,则会在安装结束时自动重启,执行上述升级命令后,可直接查看版本号变为升级后的版本号)

systemctl stop msyqld
这里是关闭数据库后再升级,那么升级完毕后要记得重启.

升级:直接替换二进制文件(即直接yum update/rpm -Uvh升级rpm包)数据库目录等都不变

进入到准备的rpm包目录,执行一下命令,这里只安装了5个rpm包
rpm -Uvh mysql-community-*.rpm

检查并可能解决旧数据和升级软件之间的任何不兼容性

在这一步,如果是关闭数据库升级,数据库要已启动
mysql_upgrade -uroot -p
当从5.7.29升级到5.7.30需要更新,当升级到最新的5.7.30后,就不用了.当然,如果非要更新(其实没必要),要加–force选项.

验证

rpm验证

rpm -qa |grep -i mysql

mysql命令

mysql -V

进入msyql系统后验证

mysql> select version();