前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >配置ECS上自建MySQL作为RDS从库过程中踩到的坑

配置ECS上自建MySQL作为RDS从库过程中踩到的坑

作者头像
保持热爱奔赴山海
发布2019-09-18 15:23:53
2K0
发布2019-09-18 15:23:53
举报
文章被收录于专栏:数据库相关数据库相关

环境:

  RDS版本:阿里云的5.6

  ECS自建MySQL5.6.34(官方版本)

通过将阿里云rds的自动全量备份下载到ECS上,按照官方的步骤解压--> aploy-log ---> mv 到mysql的datadir 并启动mysql。

然后执行

reset slave all;

reset master;

change master to master_host='rm-xxxxxxxxx.mysql.rds.aliyuncs.com',

master_user='rpl', 

master_password='123456' , 

MASTER_PORT=3306, 

MASTER_AUTO_POSITION=1; 

这里就报错了。错误日志提示:

2017-06-05 16:35:19 16759 [ERROR] Error reading relay log configuration.

2017-06-05 16:37:00 16759 [ERROR] Error reading master configuration.

原因:

 阿里云的RDS是做个修改的版本,和官方部分表结构的不一样。(目前发现的有mysql库下面的slave_master_info、slave_relay_log_info、slave_worker_info,其他的表还没仔细关注)

RDS恢复出来的这3张表里面,比官方的版本多了个Channel_name字段。导致我们change master失败。

下图是我在编译的alisql上面查看的表结构:

wKioL1k1MMSQK9DhAACWDpGaKL8401.png
wKioL1k1MMSQK9DhAACWDpGaKL8401.png

解决方法:

use mysql;

drop table slave_master_info;

drop table slave_relay_log_info;

drop table slave_worker_info;

然后参照其他MySQL5.6的机器,重新建这3张表。

完成后,再按照常规的GTID复制的从库搭建步骤操作:

change master to master_host='rm-xxxxxxxxxxx.mysql.rds.aliyuncs.com',

master_user='rpl', 

master_password='rpl' , 

MASTER_PORT=3306, 

MASTER_AUTO_POSITION=1; 

SET GLOBAL gtid_purged='b9f0343a-3ac4-11e7-9769-008cfaf59624:1-6751, d50b0441-3ac4-11e7-976a-7cd30ac47780:1-106693';

start salve;

这样就可以自动开始同步数据了。

(如果用编译安装的alisql则不需要这几步骤,因为阿里云开源出来的ALiSQL和RDS都有Channel_name字段)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/06/05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档