MySQL主主同步

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

环境介绍:

CentOS-6.7  64位

Master1:Blog-MySQL-1  192.168.133.128

Master2:Blog-MySQL-2  192.168.133.132

MySQL 版本 5.5.33 二进制包安装

 

检查两台机器的实验环境是否符合要求。并保证可以正常登陆 mysql

以其中一台截图为例:

hostname

ifconfig eth0 | grep "inet addr" | awk '{print $2}' | cut -d: –f2

mysql –V

cat /etc/redhat-release      

uname -a     

image

image

 

以上算是双主环境搭建的准备工作吧,接下来编辑 Master 1 的 my.cnf 文件

为了方便查阅还是跟之前一样,先过滤一下 # , $  开头的行吧

cat /etc/my.cnf | grep -v ^# | grep -v ^$ > tmp.log

cat tmp.log > /etc/my.cnf

image

 

Master 1 的  my.cnf 文件中的 [mysqld] 中添加以下字段

vim /etc/my.cnf

server-id  = 1

log-bin = mysql-bin

auto_increment_increment = 2

auto_increment_offset     = 1

log-slave-updates

expire_logs_days = 7

skip-name-resolve

lower_case_table_names=1

image

以上参数

auto_increment_increment = 2           #自增ID的间隔,如 1 3 5 间隔为 2

auto_increment_offset     = 1                #ID的初始位置

 

修改配置文件需要重启 Master 1 的数据库

/etc/init.d/mysqld restart     

image

 

登录 Master 1 的 mysql

mysql -uroot -p123456     

image

 

在 Master 1 上创建同步到 Master 2 上的账号

grant replication slave on *.* to yuci@'%' identified by '123456';     

flush privileges; 

image

 

检查刚才刚才的操作

select user,host from mysql.user;

show grants for yuci@'%';

image

 

继续操作 Master1 锁表,查看 binlog 文件及 pos 位置节点

flush table with read lock;

show master status;      

image

 

新打开一个窗口,将 Master 1 的数据库文件导出,通过 scp 命令传递给 Master 2 上

mysqldump -uroot -p123456 --events -A -B > /root/test.sql

scp test.sql root@192.168.133.132:/root

yes

image

 

解表 Master 1

unlock tables;

image

 

登陆到 Master 2 上,现将刚才的数据库 test.sql 导入

mysql -uroot -p123456 < test.sql

image

 

编辑 Master 2 的 my.cnf 文件,跟上面的操作一样,只需要注意的是 server-id 和 offset

cat /etc/my.cnf | grep -v ^# | grep -v ^$ > tmp.log

cat tmp.log > /etc/my.cnf     

image

server-id       = 2

log-bin = mysql-bin

auto_increment_increment = 2

auto_increment_offset    = 2

log-slave-updates

expire_logs_days = 7

skip-name-resolve

lower_case_table_names=1     

image

 

修改配置文件后别忘重启 mysql

/etc/init.d/mysqld restart

image

 

登陆 Master 2 的 mysql 数据库

 mysql -uroot –p123456

CHANGE MASTER TO

MASTER_HOST='192.168.133.128',

MASTER_PORT=3306,

MASTER_USER='yuci',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=332;

image

 

查看两个IO SQL连个线程是否连接成功

start slave;

show slave status\G

image

 

在 Master 2 上创建一个用于同步到 Master 1 的账号,刷新并检查

其实就是两台 mysql 分别创建两个账号,账号不能重复

grant replication slave on *.* to yuci1@'%' identified by '123456';

flush privileges;

select user,host from mysql.user;     

show grants for yuci@'%';

image

 

查看 Master 2 的 binlog 文件和 pos 号

show master status;

image

 

返回 Master 1 上,设置账号同步参数

输入时注意每个参数,别把它和之前的账号,用户名,密码搞反了

CHANGE MASTER TO

MASTER_HOST='192.168.133.132',

MASTER_PORT=3306,

MASTER_USER='yuci1',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000002',

MASTER_LOG_POS=333;

image

 

在 Master 1 上启动 slave,并查看

start slave;

show slave status\G

image

到此为止,双主的环境就算是搭建完成了,接下来测试一下。

 

先在 Master 1 上创建数据库 yucitest1

create database yucitest1;

show databases;     

image

 

在 Master 2 上查看所有数据库,可以看到刚才创建的 yucitest1 ,将其删除,创建 yucitest2 数据库

show databases;

drop database yucitest1;     

create database yucitest2;

image

 

返回 Master 1 看到 yucitest2 ,环境搭建成功

show databases;

image

本文转自   mlwzby   51CTO博客,原文链接:http://blog.51cto.com/aby028/1893336

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
安全 关系型数据库 MySQL
如何将数据从MySQL同步到其他系统
【10月更文挑战第17天】如何将数据从MySQL同步到其他系统
1617 0
|
20天前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
178 5
|
7月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
10月前
|
监控 关系型数据库 MySQL
Flink CDC MySQL同步MySQL错误记录
在使用Flink CDC同步MySQL数据时,常见的错误包括连接错误、权限错误、表结构变化、数据类型不匹配、主键冲突和
420 17
|
消息中间件 canal 关系型数据库
Maxwell:binlog 解析器,轻松同步 MySQL 数据
Maxwell:binlog 解析器,轻松同步 MySQL 数据
1287 11
|
SQL 存储 关系型数据库
Mysql主从同步 清理二进制日志的技巧
Mysql主从同步 清理二进制日志的技巧
132 1
|
关系型数据库 MySQL Linux
mysql 主从同步 实现增量备份
【8月更文挑战第28天】mysql 主从同步 实现增量备份
223 3
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版产品使用问题之使用CTAS同步MySQL到Hologres时出现的时区差异,该如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL 存储 关系型数据库
实时计算 Flink版产品使用问题之同步MySQL多张表的过程中,内存释放依赖于什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL 存储 关系型数据库
MySQL主从同步延迟原因与解决方法
MySQL主从同步延迟原因与解决方法
1401 0

推荐镜像

更多