MySQL升级

MySQL5.7新增了不少新功能,比如:Online DDL、多源复制、增强半同步、表空间传输、sys 库、Group Replication等。

一、MySQL升级的两种方式

1in-place upgrade:
    适合小版本的升级。
    即 关闭当前的MySQL,替换当前的二进制文件或包,在现有的数据目录上重启MySQL,并运行mysql_upgrade.
    特点:不改变数据文件,升级速度快;但,不可以跨操作系统,不可以跨大版本(5.5>5.72、logical upgrade:
    适合不同操作系统的MySQL升级,大版本之间的升级。
    即:使用mysqldump 或 mydumper 导入导出数据,实现版本的升级。
    特点:可以跨操作系统,跨大版本;但,升级速度慢,容易出现乱码等问题。

二、MySQL升级的实质

对数据字典的升级
数据字典有:mysql、information_schema、performance_schema、sys schema。

三、升级前的准备

提前做好备份。
了解新版本变更的信息(哪些不再兼容,不再支持哪些功能)

四、升级过程
1、对5.7的软件包,下载,解压

$ tar -xzvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz   #这个是二进制的包,直接解压就可以用
$ ln -s mysql-5.7.20-linux-glibc2.12-x86_64  mysql5.7

2、关闭当前MySQL(5.6)

$ mysql -u root -p -S /data/mysql3308/mysql3308.sock  –execute=SET GLOBAL innodb_fast_shutdown=0″
$ mysqladmin -u root -p -S /data/mysql3308/mysql3308.sock  shutdown

3、替换二进制文件(5.7 替换 5.6)

$ cd /usr/local
$ mv mysql   mysql5.6
$ mv mysql5.7  mysql

4、使用现有的数据目录启动MySQL

$ mysqld_safe –user=mysql –socket=/data/mysql3308/mysql3308.sock -pskip-grant-tables  –datadir=/data/mysql3308/data

5、检查所有表是否与当前版本兼容,并更新系统库

$ mysql_upgrade -uroot -p -S /data/mysql3308/mysql3308.sock
注:mysql_upgrade的作用是检查所有库的所有表是否与当前的新版本兼容,并更新系统库。

6、重启,确保对系统表所做的变更得以生效

$ mysqld –defaults-file=/data/mysql3308/my3308.cnf &
$ mysql -uroot -p -S /data/mysql3308/mysql3308.sock

备注:
在做升级时,一般创建一个从库进行升级,若升级失败,也不会影响到主库;若升级成功,测试也成功,便会将其他的从库也逐渐升级到新版本,最后将主库下线,提升一个从库做新主库,对旧主库进行版本升级。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值