ECS实例搭建阿里云RDS实例的从库

上次遇到了一个主从复制错误1782,解决办法:https://www.cnblogs.com/102x/p/10984473.html

1.搭建具有mysql备份恢复工具percona-xtrabackup的MySQL容器:方法:https://blog.csdn.net/qq_39122146/article/details/107989249

2.rds上创建一个普通账户,无需分配任何库的权限,用于从库同步使用;

3.添加ecs实例IP至RDS白名单;

4、下载RDS的全量备份至ECS实例,全量备份坐标见下图;

在这里插入图片描述
下载好的文件为:hins11787893_data_20200814034712.tar
在这里插入图片描述

从备份数据恢复

1、添加下述参数至mysql配置文件的[mysqld]标签下;

server-id = 2156239584
log-bin=mysql-bin
relay-log=relay-bin

gtid_mode=on
enforce_gtid_consistency=on
binlog_format=row 
log_slave_updates=1

# 并行复制配置
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16
master_info_repository=TABLE

2.解压数据库备份文件:

sudo tar -xvf hins11787893_data_20200814034712.tar

在这里插入图片描述
3.将备份文件hins11787893_data_20200814034712.tar移走:

sudo mv hins11787893_data_20200814034712.tar /qj/data/

4.进入MySQL容器进行备份
备份准备:

xtrabackup --prepare --target-dir=/data/backup -S /var/run/mysqld/mysqld.sock -H 127.0.0.1 -uroot -p123456 -P3306

进行备份:

xtrabackup --copy-back --target-dir=/data/backup -S /var/run/mysqld/mysqld.sock -H 127.0.0.1 -uroot -p123456 -P3306

备份时报错:
在这里插入图片描述
解决办法:

rm -rf /var/lib/mysql/*

在这里插入图片描述

5.修改mysql配置文件为跳过授权,即添加下述配置至[mysqld]标签下

skip-grant-tables

如下图所示:
在这里插入图片描述
6.清空mysql库下的slave相关表信息

use mysql;
truncate slave_gtid_info;
truncate slave_master_info;
truncate slave_relay_log_info;
truncate slave_worker_info;

在这里插入图片描述
7.修改root账户密码

select host,user from mysql.user;
update mysql.user set authentication_string=password('新密码') where user='aliyun_root';
mysql:5.6(不用设置ali_root)设置root密码:
update mysql.user set password=password('Your_password') where user='root';

这时会报错,Unknown system variable ‘maintain_user_list’,如图:
在这里插入图片描述
表示有触发器.
注意: 在mysql5.7 中, aliyun_root 才是真正超级权限账号.

1.查看并删除触发器.命令如下:

select trigger_schema,trigger_name from information_schema.triggers;

删除这两个触发器,命令如下:

drop trigger sys.sys_config_insert_set_user;
drop trigger sys.sys_config_update_set_user;

在这里插入图片描述
find /var/lib/mysql/ -iname *.trg
在这里插入图片描述

直接把查询的内容删除就可以
重新修改root和aliyun_root账号的密码

update mysql.user set authentication_string = password('新的密码') where user='用户名' and host='%';
flush privileges;

注释或删除MySQL的跳过授权配置:

skip-grant-tables

配置主从

再次登录mysql数据库时请指定-h 127.0.0.1

mysql -u root -p -h127.0.0.1

在这里插入图片描述

reset slave;
change master to master_host='rm-xxxxxxxx.mysql.rds.aliyuncs.com',master_port=3306,master_user='xxxxxxxx',master_password='xxxxxxxx',master_auto_position=0;

主库的二进制文件名及当前备份的position编号记录在/data/tmp/xtrabackup_slave_filename_info,如下图

复制下述语句时注意去除MATSER_LOG_POS后面值两边的单引号

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000627', MASTER_LOG_POS=461950385;

在这里插入图片描述
最后一步就是启动同步,并查看同步状态

start slave;
show slave status\G;

确认Slave_IO_Running、Slave_SQL_Running的值均为Yes即可,如下图所示
在这里插入图片描述
参考:https://segmentfault.com/a/1190000018516873

http://www.itzoo.net/db/997.html

https://blog.csdn.net/cyfblog/article/details/101017375

https://yq.aliyun.com/articles/688509

主从复制延迟问题:https://www.cnblogs.com/andy6/p/9601851.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值