mysql主主-配置数据同步

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

1、数据库同步设置

  主机操作系统:Centos 6.2

  数据库版本:mysql  Ver 14.14 Distrib 5.1.73

  前提:MYSQL数据库正常启动

      ServA122.112.x.x

      ServB211.101.x.x

1.1 配置同步账号

 在ServA上增加一个ServB可以登录的帐号:

 Mysql>grant replication slave on  *.* TO yunip@'211.101.x.x' IDENTIFIED BY '123456';

 mysql> flush privileges; 

 mysql> quit 

 在ServB上增加一个ServA可以登录的帐号:

Mysql>grant replication slave on  *.* TO yunip@'122.112.x.x' IDENTIFIED BY '123456'; 

mysql> flush privileges; 

mysql> quit


2配置数据库参数

   以root用户登录ServA,修改ServA的my.cnf文件

[mysqld]

log-bin=mysql-bin

server-id = 1

log-bin = mysql-bin

log-slave-updates

 sync_binlog=1

 auto-increment-increment = 2

 auto-increment-offset = 1                              //就是为了让双主同时在一张表中进行添加操作时不会出现id冲突.          replicate-do-db = test

replicate-ignore-db =mysql

master-host     =   211.101.x.x

master-user     =   yunip

master-password =   123456

master-port     = 3306


重启mysql服务:

service mysqldrestart

 

root用户登录ServB,修改ServBmy.cnf文件

vi /etc/my.cnf

[mysqld]的配置项中增加如下配置:

 

[mysqld]

log-bin=mysql-bin

server-id = 2

log-bin = mysql-bin
       log-slave-updates

 sync_binlog=1

 auto-increment-increment = 2

 auto-increment-offset = 2                       //就是为了让双主同时在一张表中进行添加操作时不会出现id冲突.    

replicate-do-db = test

 replicate-ignore-db =mysql

master-host     =   122.112.x.x

master-user     =   yunip

master-password =   123456

master-port     = 3306

注:二库都只有server-id不同和 auto-increment- offset不同         
    auto-increment-offset
是用来设定数据库中自动增长的起点的,回为这两能服务器都设定了一次自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突
    replicate-do-db 
指定同步的数据库,我们只在两台服务器间同步mydb数据库
另:auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2
(这段标注是抄袭51cto好友“红豆杀”的其主页是http://home.51cto.com/index.php?s=/space/2517622^_^ 在他这学到不少东西。)

 

#配置完成后,重启两台数据库
 service mysqld restart

3
、分别重启服务器ServAServB上的mysql服务 

 分别在服务器ServAServB 上查看做为主服务器状态 
ServA:

mysql> stop slave;

mysql> flush tables with read lock;#防止进入新的数据 
Query OK, 0 rows affected (0.00 sec) 
mysql> show master status\G
*************************** 1. row ***************************

       File: mysql-bin.000015

       Position: 106

       Binlog_Do_DB:

       Binlog_Ignore_DB:

       1 row in set (0.00 sec)


ServB:

mysql> stop slave;

mysql> flush tables with read lock; 
Query OK, 0 rows affected (0.00 sec) 
mysql> show master status\G
*************************** 1. row ***************************

       File: mysql-bin.000025

       Position: 106

       Binlog_Do_DB:

       Binlog_Ignore_DB:

       1 row in set (0.00 sec)

 注:这里锁表的目的是为了生产环境中不让进新的数据,好让从服务器定位同步位置。初次同步完成后,记得解锁。


 4、分别在服务器ServAServB上用change master语句指定同步位置 : 
 ServA


mysql>change master to master_host='211.101.x.x',master_user='yunip',master_password='123456',master_log_file='mysql-bin.000025',master_log_pos=106; 
Query OK, 0 rows affected (2.28 sec)


ServB


mysql>
change master to master_host='122.112.x.x',master_user='yunip',master_password='123456',master_log_file='mysql-bin.000015',master_log_pos=106; 
Query OK, 0 rows affected (0.01 sec)


注:master_log_filemaster_log_pos由上面主服务器查出的状态值中确定 
master_log_file
对应Filemaster_log_pos对应Position 

 

ServAServB :


mysql> unlock tables; 
Query OK, 0 rows affected (0.00 sec) 

 

 

 

分别在服务器ServAServB上启动从服务器线程 


mysql> start slave; 
Query OK, 0 rows affected (0.00 sec) 


分别在服务器ServAServB上查看从服务器状态 : 


mysql> show slave status\G 
*************************** 1. row *************************** 
主要关注以下 2 个参数: 
... 
... 
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes 
... 
... 
 注:查看以上两项的值,均为Yes则表示状态正常。


5测试 


ServB
 
mysql> show databases; 
+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| p2pbbs             |

| p2pnews            |

| p2pwiki            |

| test               |

+--------------------+

6 rows in set (0.00 sec)


mysql> use test; 
Database changed 
mysql> show tables; 
Empty set (0.00 sec) 
mysql> create table water (id int); 
Query OK, 0 rows affected (0.04 sec) 
mysql> insert into water values(1); 
Query OK, 1 row affected (0.01 sec) 
mysql>commit; 
Query OK, 0 rows affected (0.00 sec) 
 ServA  
mysql> show tables; 
+--------------------+ 
| Tables_in_db_rocky | 
+--------------------+ 
| test | 
| water | 
+--------------------+ 
2 rows in set (0.00 sec) 
mysql> select * from water; 
+------+ 
| id | 
+------+ 
| 1 | 
+------+ 
1 row in set (0.00 sec) 

 本文转自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1554761如需转载请自行联系原作者


qianghong000

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
28天前
|
存储 SQL 关系型数据库
创建并配置RDS实例
在阿里云上创建RDS实例涉及登录控制台、进入RDS管理页面、创建实例、选择数据库引擎和版本、配置实例规格与存储、设定网络与安全组、设置实例信息、确认订单并支付,最后初始化数据库。操作步骤可能因界面更新或数据库引擎不同略有差异。
18 1
|
1月前
|
关系型数据库 MySQL 开发工具
MySQL5.7主从配置(Docker)
MySQL5.7主从配置(Docker)
725 0
|
2月前
|
存储 监控 关系型数据库
rds迁移前准备资源评估与配置
rds迁移前准备资源评估与配置
37 5
|
9天前
|
SQL 缓存 关系型数据库
mysql性能优化-慢查询分析、优化索引和配置
mysql性能优化-慢查询分析、优化索引和配置
75 0
|
14天前
|
缓存 关系型数据库 MySQL
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
|
20天前
|
canal 消息中间件 关系型数据库
【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步
【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步
66 0
|
24天前
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
14 1
|
27天前
|
弹性计算 关系型数据库 MySQL
rds子网配置
在阿里云中配置RDS子网涉及五个关键步骤:1) 创建或选择VPC作为私有网络环境;2) 在VPC内创建子网并确保IP地址不重叠;3) 关联路由表和安全组以控制流量及访问权限;4) 创建RDS实例时指定VPC和子网;5) 确保ECS实例与RDS在同一VPC或配置相应跨VPC访问,并调整安全组规则。这样可保障RDS与其他资源的通信及网络性能。
17 6
|
29天前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
183 0
|
1月前
|
DataWorks 关系型数据库 MySQL
DataWorks报错问题之dataworks配置mysql数据源报错如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。

热门文章

最新文章