MySQL升级教程(CentOS)

1.支持的升级方式

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

逻辑升级(Logical Upgrade):先用mysqldump导出数据库--替换二进制文件--重新导入数据库。

2.支持升级路径

小版本升级,如5.7.9--5.7.10

版本升级,如5.6--5.7

跨版本升级,如5.1--5.5--5.6

说明:只支持一次升一个版本不支持直5.1--5.6等直接跨版本。

3.原地升级数据库

下边我们以原地升级方式将5.1板本升级至5.5版本为例

3.1备份数据库

mysqldump -u root -p --add-drop-table --routines --events --all-databases --force > data-for-upgrade.sql

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

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

3.3关闭数据库

mysqladmin -u root -p shutdown

3.4升级安装包

[root@ls Desktop]# rpm -qa | grep -i mysql           #查看当前安装的相关包
mysql-devel-5.1.73-8.el6_8.x86_64
mysql-5.1.73-8.el6_8.x86_64
perl-DBD-MySQL-4.013-3.el6.x86_64
mysql-libs-5.1.73-8.el6_8.x86_64
mysql-server-5.1.73-8.el6_8.x86_64

[root@ls Desktop]# rpm -e mysql-server               #mysql-server包拒绝直接升级所以要先卸载其他包可以不管

[root@ls mysql]# tar -xf MySQL-5.5.55-1.el6.x86_64.rpm-bundle.tar 

[root@ls mysql]# ls
MySQL-client-5.5.55-1.el6.x86_64.rpm
MySQL-devel-5.5.55-1.el6.x86_64.rpm
MySQL-embedded-5.5.55-1.el6.x86_64.rpm
MySQL-server-5.5.55-1.el6.x86_64.rpm
MySQL-shared-5.5.55-1.el6.x86_64.rpm
MySQL-shared-compat-5.5.55-1.el6.x86_64.rpm
MySQL-test-5.5.55-1.el6.x86_64.rpm

[root@ls mysql]# rpm -Uvh *                           #为了省去麻烦直接全部安装

[root@ls mysql]# rpm -qa|grep -i mysql
MySQL-client-5.5.55-1.el6.x86_64
MySQL-shared-compat-5.5.55-1.el6.x86_64
MySQL-embedded-5.5.55-1.el6.x86_64
perl-DBD-MySQL-4.013-3.el6.x86_64
MySQL-test-5.5.55-1.el6.x86_64
MySQL-server-5.5.55-1.el6.x86_64
MySQL-shared-5.5.55-1.el6.x86_64
MySQL-devel-5.5.55-1.el6.x86_64
[root@ls mysql]# 

3.5启动数据库

mysqld_safe --user=mysql --datadir=/mysql/data       #mysqld_safe 是官方推荐的启动方式user为启动的系统用户datadir为数据库文件所在目录

3.6升级数据库(该操作会将旧版的系统数据库数据表转成当前版本的模样)

mysql_upgrade -u root -p                             #u是登录数据库用户

3.7为确保所有更新生效官方建议再次重启数据库

mysqladmin -u root -p shutdown
service mysql start

参考:

http://www.linuxidc.com/Linux/2016-08/134342.htm

https://dev.mysql.com/doc/refman/5.7/en/upgrading.html

原文地址:https://www.cnblogs.com/lsdb/p/6733942.html