228_mysql_复制技术_mysql版本升级
【摘要】 mysql 版本升级
总体步骤 INPLACE 升级过程原理
- a 安装新版本软件
- b 关闭原数据库(挂维护页) #set global innodb_fast_shutdown=0 ; # 不留脏数据 前滚/回滚完成
备份原数据库数据 #冷备 CP到其它地方备份
- c 使用新版本软件 “挂” 旧版本数据启动(--skip-grant-tables#跳过授权表 user表 ,--skip-networking #不允许远程登录) #升级系统表 权限表等
- d 升级 : 只是升级系统表。升级时间和数据量无关的。(8.0 和 5.7 区别)
- e 正常重启数据库
- f 验证各项功能是否正常
- g 业务恢复
5.6.46 ----> 5.7.28 Inplace 升级演练
a. 安装 新版本软件
b. 停原库 & 冷备# 快速关库功能关闭(优先刷脏页)
mysql> set global innodb_fast_shutdown=0 ;
[root@db01 app]# /usr/local/mysql56/bin/mysqladmin -S/tmp/mysql3356.scok shutdown
[root@db01 app]# cp -r /data/3356/data/ /opt/3356.bak #冷备
c. 使用高版本软件挂低版本数据启动 (改5.6配置文件)
[mysqld]
user=mysql
basedir=/usr/local/mysql57
datadir=/data/mysql56/data
socket=/tmp/mysql3356.scok
port=3356
server_id=56
#启动
[root@db01 data]# /usr/local/mysql57/bin/mysqld_safe --defaults-file=/data/3356/my.cnf --skip-grant-tables --skip-networking &
d. 升级 (升级到8.0可以省略)
[root@db01 data]# /usr/local/mysql57/bin/mysql_upgrade -S/tmp/mysql3356.scok --force #升级后会有 mysql_upgrade_info
e. 重启数据库到正常状态
[root@db01 data]# mysqladmin -S /tmp/mysql3356.sock; shutdown (5.7版本支持 内部 shutdown)
#备注:sql_mode (only_full_group_by ); GTID 支持;
f: 正常启动数据库
[root@db01 app]# /usr/local/mysql57/bin/mysqld_safe &
g # 连接查看
mysql> show variables like '%version%';
# 测试应用
1、各项功能验证
2、SQL_MODE: 日期、group by
临时:关闭相应 SQL_mode ;建议:让应用满足 SQL_mode
升级 5.7 ~ 8.0
mysql-shell工具,8.0以后,可以调用这个命令,升级之前的预检查。
[root@db01 ~]# mysqlsh root:123@10.0.0.51:3306 -e "util.checkForServerUpgrade()"
# 且不需要 mysql_upgrade
1. 下载 8.0.20 版本的 mysql-shell,并安装 。
[root@db01 app]# yum install -y mysql-shell-8.0.18-1.el7.x86_64.rpm
2. 创建用户
mysql> grant all on *.* to root@'10.0.0.%' identified by '123';
3. 预 检查
mysqlsh root:123@10.0.0.51:3306 -e "util.checkForServerUpgrade()" > /tmp/up.log
# 开始升级
a. 安装 8.0软件
b. 优雅需要升级的数据库
[root@db01 app]# /data/app/mysql/bin/mysql -S/tmp/mysql56.scok
mysql> set global innodb_fast_shutdown=0 ;
mysql> shutdown;
c. 使用高版本软件挂低版本数据启动
[mysqld]
user=mysql
basedir=/data/app/mysql8
datadir=/data/mysql3357/data
socket=/tmp/mysql57.scok
port=3356
d.高版本软件挂低版本数据启动
[root@db01 data]# /data/app/mysql8/bin/mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables --skip——networking &
e. 正常启动数据库
[root@db01 data]# /data/app/mysql8/bin/mysqladmin -S/tmp/mysql56.sock shutdown
f: 正常启动数据库
[root@db01 app]# /data/app/mysql8/bin/mysqld_safe &
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)