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

本文详细介绍了如何在阿里云RDS作为主库、本地MySQL作为从库的情况下搭建MySQL的自动主从同步。主要内容包括从节点的配置文件设置、启动同步的具体步骤及遇到问题时的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

业务技术背景:

一个数据库性能不够,所以采用读写分离,所以必须自己搭建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的用法

### 阿里云RDSMySQL数据库的管理与使用 #### 创建和配置实例 通过阿里云控制台创建新的RDS MySQL实例时,可以选择版本、性能等级以及存储空间等参数[^1]。对于短期项目而言,推荐选用Serverless模式来降低运营成本并享受自动扩展带来的便利。 #### 连接至数据库 为了连接到已部署好的RDS MySQL服务,需要获取其公网地址或内网IP,并设置相应的白名单规则允许访问请求进入。之后可利用命令行工具如`mysql`客户端或是图形界面应用程序来进行交互操作。 ```bash mysql -h your-rds-endpoint.rds.aliyuncs.com -P 3306 -u root -p ``` #### 数据库安全策略设定 考虑到安全性因素,在实际应用环境中应当严格限制外部网络对该数据库实例的访问权限;只开放必要的端口给信任来源地址段内的设备通信即可。另外还需定期更改管理员账户密码以增强防护力度。 #### 主从复制机制简介 当涉及到高可用性和读写分离架构设计的时候,则离不开对主从复制功能的支持。这里提到一种基于全局事务标识符(GTID)的方法能够简化跨节点间的数据同步流程,其中涉及到了source_id这一概念用来唯一识别每台参与同步过程中的master server[^2]。 #### 性能优化建议 针对可能出现瓶颈的地方采取针对性措施加以改进是非常重要的环节之一。比如调整InnoDB缓冲池大小、启用慢查询日志记录等功能均有助于提升整体效率表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值