MySQL 升级

Changes in MySQL 5.7:https://dev.mysql.com/doc/refman/5.7/en/upgrading-from-previous-series.html

首先标准化部署:

1. 数据目录与软件目录要求分开!

2. 操作系统账户MySQL默认bin目录如下

su - mysql
echo 'export PATH=$PATH:/data/mysql/5.7/bin' >> ~/.bashrc
source ~/.bashrc

3. 当前MySQL软件目录(/data/mysql/)如下:
5.7 -> /data/mysql/5.7.23
5.7.23
home

 

本测试使用的是 “双主+keepalived”,先升级备实例、再升级主实例,升级方法相同。

# 1.下载解压
su - mysql
cd /data/mysql/home
tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.28-linux-glibc2.12-x86_64 /data/mysql/5.7.28

# 1.停止kv服务,防止切换(如master升级,需确认数据已完全同步)
systemctl stop keepalived.service 

# 2.设置缓慢关闭,通过缓慢的关闭,InnoDB在关闭之前执行full purge 和 change buffer merge,以确保在两个版本之间的文件格式不同的情况下,数据文件已准备就绪
mysql -P 3309 -u root -p -S /data/mysql3309/tmp/mysql.sock --execute="SET GLOBAL innodb_fast_shutdown=0" 

# 3.停止MySQL服务
mysqladmin -P 3309 -u root -p -S /data/mysql3309/tmp/mysql.sock shutdown

# 4.部署新版本数据库
ln -snf /data/mysql/5.7.28 /data/mysql/5.7

# 5.使用新版的命令启动服务
mysqld_safe --defaults-file=/data/mysql3309/my.cnf 2>&1 > /dev/null &

# 5.检查和升级!检查数据库和表与当前版本是否兼容,升级mysql系统数据库
mysql_upgrade -P 3309 -u root -p -S /data/mysql3309/tmp/mysql.sock

# 6.重启mysql服务,以确保对系统表所做的所有更改均生效
mysqladmin -P 3309 -u root -p -S /data/mysql3309/tmp/mysql.sock shutdown
mysqld_safe --defaults-file=/data/mysql3309/my.cnf 2>&1 > /dev/null &

# 7.启用kv服务,最后验证MySQL同步情况!
systemctl start keepalived.service
mysqlcheck -P 3309 -u root -p -S /data/mysql3309/tmp/mysql.sock --all-databases

升级完成后,当前MySQL软件目录(/data/mysql/)如下:
5.7 -> /data/mysql/5.7.28
5.7.23
5.7.28
home

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值