mysql主从复制,主阿里云RDS,从本地mysql情况

业务技术背景:

一个数据库性能不够,所以采用读写分离,所以必须自己搭建mysql自动主从同步!

以下演示是阿里云RDS为主库,本地的mysql为从库的情况:

如果两个都是自己安装的mysql,请参考这个视频学习:3 MySQL实现主从复制_哔哩哔哩_bilibili

1. 从节点/etc/my.conf配置:(以下只同步:slavetest库)

[mysqld]
#设置mysql的安装目录
#设置mysql数据库的数据存目录
datadir = /usr/local/mysql/data
basedir = /usr/local/mysql
#设置端口
port = 3306

socket = /tmp/mysql.sock
#设置字符集
character-set-server=utf8
#日志存放目录
log-error = /usr/local/mysql/data/mysqld.log
pid-file = /usr/local/mysql/data/mysqld.pid
#允许时间类型的数据为零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE)
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

log_bin=/var/log/mysql/mysql-bin.log

# 主从同步模式
binlog_format = row
# 主从标示ID
server-id = 12
# 忽略同步的数据库
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
# 开启gtid模式
gtid_mode=on
# 保证GTID安全的参数
enforce_gtid_consistency=on
# 让从机接收到bin_log后也同步到自己的bin_log上
log-slave-updates=ON
replicate-do-db = slavetest

2. 重启从节点mysql: service mysql restart

3. 登录从节点mysql(建议别linux登录装逼,用navicat即可)

执行:

change master to master_host = 'rds外网地址', master_port = 3306, master_user = '账号', master_password='密码', master_auto_position = 1;

start slave;(启动同步)

show slave status \G;(查看同步任务状态)

Slave_IO_Running 和 Slave_SQL_Running 的状态是否为 Yes

这里我的启动失败了,报了1236错误,因为我的主节点是线上库,数据实时在变动

Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires. Replicate the missing transactions from elsewhere, or provision a new slave from backup. Consider increasing the master's binary log expiration period. The GTID set se'

解决办法:(从节点操作)

第1步. 
stop slave;
第2步.
reset master;
第3步 (值是主机show master status;查到的,查到尽快执行,否则会变)
set @@global.gtid_purged='0b2db2cc-11c5-11eb-83b8-00163e0bb963:1-53777510,
a01a6b14-9fb0-11ec-80c1-00163e0e1f8a:1-28200564';
第4步
start slave;

测试流程:

1. 主从节点首先都建好数据库slavetest

2. 主节点新增和修改slavetest

3. 从节点自动同步数据

从节点:

 至于应用怎么去写走主库,读走备库,请看我上一个文章,多数据源处理:@DS多数据源baomidou的用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值