阿里云RDS Mysql 8.0 与本地主从同步
我这里用的主库阿里云的RDS mysql版本为8.0,
主从配置需要注意的点
Master 和 Slave 数据库的版本要一致;
Master 开启二进制日志, Master 和 Slave 的 server_id 不能一致;
从主机Centos下安装Mysql8 可参考以下教程
https://blog.csdn.net/qq_39150374/article/details/112471108
注意:
使用 service mysqld start 可能会出现错误,无法启动。
请使用 systemctl start mysqld 命令
systemctl start/stop/status mysqld
设置Mysql开机自启动
1、确保权限
chmod +x /etc/rc.d/rc.local
2、在ect目录下创建脚本
vi MysqlStart.sh
#!/bin/bashservice mysqld start
赋予权限
chmod +x /etc/MysqlStart.sh
3、编辑/etc/rc.d/rc.local文件
vi /etc/rc.d/rc.local
4、重启机器
reboot
配置主实例
- 登录 RDS 控制台,选择目标实例。
- 配置从实例读取数据使用的只读账号和授权数据库。
将本地从实例的 IP 地址加入主实例的 IP 白名单中
查询主实例的 server-id
配置从实例
1、打开从实例 MySQL 配置文件。
vim /etc/my.cnf
2、配置从实例的 server-id 和要同步的数据库。
#mysql 服务ID主从实例service-id需不同
server-id=15646844
log_bin=/var/log/mysql/mysql-bin.log
binlog_expire_logs_seconds=864000
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid#需要同步的数据库
replicate-do-db=jy-shop
#不需要同步的数据库
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
#开启gitid模式
gtid_mode=on
#保证GTID安全的参数
enforce_gtid_consistency=on
#主从同步模式
binlog_format=row
#让主机接收到bin_log后也同步到自己的bin_log上
log_replica_updates=ON
3、执行如下命令,查看 binlog 配置结果。
show variables like '%binlog_format%';
4、登录数据库设置同步选项
mysql> change master to master_host = 'rds主库外网地址', master_port = 3306, master_user = '主库账号', master_password='密码', master_auto_position = 1;
5、启动从库实例
mysql> start slave;
6、查看本机mysql同步状态
mysql>show slave status;
查看系统返回信息中 Slave_IO_Running 和 Slave_SQL_Running 的状态是否为 Yes,如下。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果都为yes代表设置成功。
在实际操作终于到的问题:
问题1、在第一步设置完log_bin目录后会造成 mysql无法启动,
通过查看/var/log/mysqld.log发现是/var/log/mysql/mysql-bin.index not found 错误
主要因为文件夹权限的问题。刚才新建的binlog目录 /var/log/mysql/mysql-bin.log
在 /var/log目录下创建mysql文件夹,然后授权
chown mysql:mysql -R /var/log/mysql
启动成功。
问题2:Slave_IO_Running状态为Connecting
问题 :分析
(1)网络不通
(2)防火墙端口未开放
(3)mysql账户密码错误
(4)mysql主从机配置文件写错
(5)配置从机连接语法错误
(6)主机未开放账户连接权限
我这里出现了3和6两个,账户写错,未放开主库账户的远程登录权限
问题3:Slave_SQL_Running: NO 问题
首先出现的是 Got fatal error 1236 from master when reading data from binary log错误。
2022-10-11T06:43:57.815382Z 17 [ERROR] [MY-013114] [Repl] Slave I/O for channel '': Got fatal error 1236 from master when reading data from binary log: 'Cannot replicate because the master purged required binary logs. 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 sent by the slave is '689f2d92-4915-11ed-a038-00163e0e8f9c:1-179', and the missing transactions are '23654640-4088-11ed-ae1d-00163e08e553:1-46747'', Error_code: MY-013114
解决方法:
1、登陆slave库
2. stop slave
mysql> stop slave;mysql> reset slave all; mysql> reset master;Query OK, 0 rows affected, 1 warning (0.01 sec)#23654640-4088-11ed-ae1d-00163e08e553:1-46747 为上述错误中出现的数字mysql> SET @@GLOBAL.GTID_PURGED='23654640-4088-11ed-ae1d-00163e08e553:1-46747';mysql> start slave; mysql> show slave status;
这时候发现Slave_SQL_Running:还是 NO
再次查看mysqld.log发现Unknown or incorrect time zone: ‘Asia/Shanghai时区错误
Slave SQL for channel '': Worker 1 failed executing transaction '23654640-4088-11ed-ae1d-00163e08e553:47188' at master log mysql-bin.000049, end_log_pos 134689; Error 'Unknown or incorrect time zone: 'Asia/Shanghai'' on query. Default database: ''. Query: 'CREATE USER '****'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*DE8B3934BD28FC61FE53A9162B63A6D1CD873EF9'', Error_code: MY-001298
通过查看目前从库的时区没有 Asia/Shanghai
mysql>show variables like '%time_zone%';
默认这个时区设置是没有的,mysql默认不支持’Asia/Shanghai’这种时区格式
mysql>set global time_zone='Asia/Shanghai';
ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Shanghai'
解决方案
需要从mysql官网下载一个时区文件,下载地址:https://dev.mysql.com/downloads/timezones.html
我们下载5.7+以上这个版本。
下载完成后,解压后是一个SQL文件,将SQL文件导入到系统库mysql中,然后就支持设置支持’Asia/Shanghai’这种时区格式
再开启 从库发现 ok了
阿里云RDS Mysql 8.0 与本地主从同步相关推荐
- 十年磨一剑,阿里云RDS MySQL和AWS RDS谁的性能更胜一筹?
MySQL代表了开源数据库的快速发展. 从2004年前后的Wiki.WordPress等轻量级Web 2.0应用起步,到2010年阿里巴巴在电商及支付场景大规模使用MySQL数据库,再到2012年开始 ...
- 阿里云重启mysql_阿里云RDS Mysql 5.6 ECS自建从库(不锁表,不重启)
注意:你的备份的时间应该在你的binlog保存时间范围内 环境: 主库: 阿里云RDS Mysql 5.6 从库: ECS机器上自建从库 Centos 7.4 setp 1 在阿里云RDS后台建立只读 ...
- Canal监听阿里云RDS Mysql踩坑
Canal监听阿里云RDS Mysql中间的坑 canal下载安装,mysql binlog开启常规操作,照着github上的指导就完事了 1)需要保证账号有如下权限,让管理员大大开一下,否则报权限错 ...
- 【数据库取证篇】阿里云RDS MySQL数据库在线取证教程
[数据库取证篇]阿里云RDS MySQL数据库在线取证教程 在线取证或备份数据-[蘇小沐] 文章目录 [数据库取证篇]阿里云RDS MySQL数据库在线取证教程 1.实验环境 一.RDS登录方式 (一 ...
- 阿里云rds mysql 并发_干货 | 浅析RDS MySQL 8.0语句级并发控制-阿里云开发者社区
背景 为了应对突发的数据库请求流量.资源消耗过载的语句访问.SQL 访问模型的变化, 并保持 MySQL 实例持续稳定运行,阿里云RDS for MySQL 8.0所采用的AliSQL分支设计了基于语 ...
- 本地电脑连接阿里云RDS Mysql数据库问题(10038错误)
使用本地电脑连接阿里云RDS数据库是总是出现如下错误: (1)之前连接是没有问题的,(由于许久没有弄,很多东西都忘记了),我放在ECS服务器上的网站是可以正常访问数据库的: (2)已经切换到外网模式, ...
- 阿里云ECS代理访问阿里云RDS MySQL数据库
一.前言 阿里云RDS数据白名单一般只对内部的服务器开放,一般不会开放给外网直接访问,有时开发需要直接访问RDS数据库,平时我们使用的网络都是动态公网IP,经常会变化,设置白名单相对繁琐一点.想了一个 ...
- 阿里云rds mysql坑_配置ECS上自建MySQL作为RDS从库过程中踩到的坑
环境: RDS版本:阿里云的5.6 ECS自建MySQL5.6.34(官方版本) 通过将阿里云rds的自动全量备份下载到ECS上,按照官方的步骤解压--> aploy-log ---> m ...
- rds mysql 恢复到本地_阿里云RDS数据库备份文件恢复到本地mysql数据库
一.安装mysql和xtrabackup (1)安装mysql 因为RDS是5.6版本,所以我们本地的mysql数据库要与RDS版本对应. rpm -ivh http://repo.mysql.com ...
最新文章
- lnmp 切换mysql 版本_LNMP1.5:php多版本切换
- python 调用linux命令-Python Linux系统管理之Python中执行外部命令
- PHP的工作原理和生命周期
- 数学--数论--原根(循环群生成元)
- tensor判断是否相等_PyTorch的Tensor(中)
- *多叉树的树形背包常见建模方法
- 厉害了,自己手写一个Java热加载!
- 不同操作系统上DNS客户端操作区别汇总
- Undefined symbols for architecture xxx
- maven覆盖setting_maven-如何为.m2文件夹或settings.xml永久指定替代位置?
- 毕业答辩的PPT全攻略(要用)
- Html软件进度计划,施工进度计划表软件
- golang mian函数和init函数
- 为什么要处理自然语言? | NLP基础
- iphone11屏比例_iPhone 11屏幕和iPhone X哪个大 iPhone 11和iPhone X屏幕大小对比
- 【历史】 apache catalina servlet tomcat 命名的由来
- nodejs---console.log()控制台打印
- Error occured processing XML 'Cannot find class [springmvc.extention.BeanArgumentResolver]
- VBA 开发学习--基础语法
- 防火墙添加ip白名单_防火墙白名单设置方法firewalld
热门文章
- 关于手机的序列号,UDID,IMEI,IMSI,ICCID详解
- 28V耐压线性充电管理芯片-ZCC3221替代CE3221 V1.2
- HashMap、比较器与Lambda
- VisualStudio工程设置(三)---Pclint集成VS2013及常见用法
- ABB主计算机作用是什么,上门维修ABB机器人主计算机开机自动反复重启故障解决方法...
- 谷歌搜索留痕怎么做?有没内容限制?
- 谷歌留痕技术教程,Google留痕外推软件
- 阿里云 oss 203 Non-Authoritative Information.CallbackFailed.Error status : 502.问题解决
- Nginx配置SSL 重定向到非80端口
- Adaptive AUTOSAR架构介绍(9)