MySQL的升级相对来说还是比较简单的。
它支持两种方式的升级:
原地升级(In-place Upgrade)
关闭数据库,替换旧的二进制文件,重启数据库,执行mysql_upgrade
逻辑升级(Logical Upgrade)
用mysqldump导出数据,安装新的数据库版本,将数据导入到新的数据库中,执行mysql_upgrade
但是MySQL版本众多,不仅有各种大版本,譬如5.1,5.5,5.6,5.7,同一个大版本中也会有各种小版本。
那么官方支持怎么的升级路径呢?
- 同一个大版本中的小版本升级,譬如5.6.25到5.6.31。
- 跨版本升级,但只支持跨一个版本升级,譬如5.5到5.6,5.6到5.7。
- 不支持跨版本的直接升级,譬如直接从5.1到5.6,可以先从5.1升级到5.5,再从5.5升级到5.6。
源码编译安装方式升级
1,备份数据和mysql主配置文件my.cnf
mysqldump -uroot -p --databases dbname > databases.sql
2,配置MySQL以通过设置innodb_fast_shutdown为 执行慢速关闭 0
set global innodb_fast_shutdown=0;
3,关闭当前的mysql服务器
mysqladmin -u root -p shutdown
4,下载安装包mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
安装包下载地址https://downloads.mysql.com/archives/community/
解压包:tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
将之前的mysql安装目录覆盖:
\cp -frp mysql-5.7.24-linux-glibc2.12-x86_64/* mysql/
5,使用现有数据目录启动MySQL 5.7.24服务器。例如:
mysqld_safe –user=mysql –datadir=/data/mysql/data
注:上面datadir后面的路径要和mysql配置文件(my.cnf)中的路径一致
6,运行mysql_upgrade,作用主要是升级系统表和修复不兼容的表。
mysql_upgrade -u root -p -S /data/mysql/var/mysql.sock
有时不加-S和mysql.sock的路径会报找不到mysql.sock的错误
7,关闭并重新启动MySQL服务器以确保对系统表所做的任何更改都生效8,mysql -V或者status查看数据库版本是否已经升级
RPM安装方式升级
1,备份数据和mysql主配置文件my.cnf
2,关闭当前的mysql服务器
mysqladmin -u root -p shutdown
3,查看当前mysql的rpm包信息
rpm -qa | grep mysql
4,官网下载5.7.24的rpm包。rpm方式需要四个依赖包
下载地址:https://downloads.mysql.com/archives/community/
4,四个包有依赖关系,所以安装顺序依次如下
yum -y install mysql-community-common-5.7.24-1.el7.x86_64.rpm
yum -y install mysql-community-libs-5.7.24-1.el7.x86_64.rpm
yum -y install mysql-community-client-5.7.24-1.el7.x86_64.rpm
yum -y install mysql-community-server-5.7.24-1.el7.x86_64.rpm
注:安装rpm包会自动替换之前的包,不用再去手动删除
5,启动数据库,然后mysql -V或者status查看数据库版本