Amazon RDS MySQL5无缝升级到MySQL8方案

Amazon RDS MySQL5无缝升级到MySQL8方案

操作前请在Amazon进行数据库快照备份,数据无价!!

1、Amazon官网已经给出三种方案

https://aws.amazon.com/cn/blogs/china/amazon-rds-for-mysql-5-7-to-8-0-upgrade-solution/

这里我们使用蓝绿部署,尽可能减少服务器停机时间

2、Amazon RDS for MySQL 5.7 到 8.0 升级前置检查

兼容性检查函数 util.checkForServerUpgrade()会根据目标版本和源版本之间的更改定义兼容性检查项

1)MySQL Shell 升级检查函数 util.checkForServerUpgrade()具体的使用方法如下:

[root@ip-bin]#wget https://dev.mysql.com/get/Downloads/MySQL-Shell/mysql-shell-8.0.32-linux-glibc2.12-x86-64bit.tar.gz
[root@ip-bin]#tar -xvzf mysql-shell-8.0.32-linux-glibc2.12-x86-64bit.tar.gz
[root@ip-bin]#cd mysql-shell-8.0.32-linux-glibc2.12-x86-64bit/bin
[root@ip-bin]#./mysqlsh
MySQL JS > util.checkForServerUpgrade('admin@your-instance.rds.amazonaws.com:3306',{"password":"123456","targetVersion":"8.0.30"})
The MySQL server at your-instance.rds.amazonaws.com:3306,
version 5.7.38-log - Source distribution, will now be checked for compatibility
issues for upgrade to MySQL 8.0.30...


Errors: 0
Warnings: 4
Notices: 0

2)使用 MySQL Shell 工具进行前置检查的时候,需选择正确的工具版本。MySQL Shell 8.0.21 及更高版本可用于 RDS 检测,如果版本低于 8.0.21,会出现以下报错:

Util.checkForServerUpgrade: Access denied for user 'admin'@' (using password: YES) (MySQL Error 1045)

3)需要注意选择正确版本且保证待检测实例版本与工具版本相匹配。MySQL Shell 默认可检测 8.0.11 至工具版本一致的 MySQL Server 版本。如果选择了与工具版本不相符的实例进行检测,如工具版本为 8.0.21,用来检测 RDS MySQL 5.7.38 版本实例升级至 RDS MySQL 8.0.32 版本会出现以下报错:

The MySQL server at your-instance.rds.amazonaws.com:3306,
version 5.7.38-log - Source distribution, will now be checked for compatibility
issues for upgrade to MySQL 8.0.30...
Util.checkForServerUpgrade: This tool supports checking upgrade to MySQL server versions 8.0.11 to 8.0.21 (LogicError)

如果选择了 RDS MySQL 实例目标版本小于待检测实例的版本,具体报错如下:

The MySQL server at
your-instance.rds.amazonaws.com:3306, version
8.0.26 - Source distribution, will now be checked for compatibility issues for
upgrade to MySQL 8.0.25...
Util.checkForServerUpgrade: Target version must be greater than current version of the server (ArgumentError)
3、解决出现的Error项。

对于数据库中包含存储过程的,需要对存储过程进行修改,需要在Amazon数据库控制台配置数据库参数组

log_bin_trust_function_creators=1 #设置 log_bin_trust_function_creators 为 1,避免二进制日志安全检查。

设置完以上配置,将数据库实例绑定到该配置,并重启数据库实例。

4、创建蓝绿部署
5、创建MySQL8自定义数据库配置,并将MySQL5的自定义配置拷贝到MySQL8
6、切换蓝绿部署

在Amazon控制台切换蓝绿部署,将MySQL5升级到MySQL8,切换完成后无需修改程序中的数据库连接信息,可无缝衔接到MySQL8数据库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.obsession.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值