`
zhengdl126
  • 浏览: 2538917 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

mysql 主主同步

阅读更多

A服务器:

host 192.168.1.101

port 3306

B服务器:

host 192.168.1.102

port 3306

 

1,授权用户:

A服务器

mysql>grant replication slave,file on *.* to 'repl9'@'192.168.1.102' identified by '1234569';

Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

B服务器

mysql>grant replication slave,file on *.* to 'repl8'@'192.168.1.101' identified by '1234568';

Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

 

2,配置文件

A服务器

log-bin=mysql-bin

server-id   = 1

binlog-do-db=test

binlog-ignore-db=mysql

replicate-do-db=test

replicate-ignore-db=mysql

log-slave-updates

slave-skip-errors=all

sync_binlog=1

auto_increment_increment=2

auto_increment_offset=1

master-host     =   192.168.1.102

master-user     =   repl8

master-password =   1234568

master-port     = 3306

 

B服务器

 

log-bin=mysql-bin

server-id   = 2

binlog-do-db=test

binlog-ignore-db=mysql

replicate-do-db=test

replicate-ignore-db=mysql

log-slave-updates

slave-skip-errors=all

sync_binlog=1

auto_increment_increment=2

auto_increment_offset = 2

master-host     =   192.168.1.101

master-user     =   repl9

master-password =   1234569

master-port     = 3306                                                                     

 

 

启动服务器就ok

 

 

--------------------------------------------------

Q: 当在另一台机器上登录MySQL时出现如下错误:

 

ERROR 2003 (HY000): Can't connect to MySQL server on 'x.x.x.x' (111)

 

A: 原因是MySQL考虑到安全因素,默认配置只让从本地登录

 

打开 /etc/mysql/my.cnf 文件,找到 bind-address = 127.0.0.1 修改为 bind-address = 0.0.0.0

 

重启mysql : sudo /etc/init.d/mysql restart

 

 

========================================

101 增加,102不同步   ?????????

mysql -h192.168.1.102 -urepl8 -p1234568        ok

 

102 增加,101 同步

mysql -h192.168.1.101 -urepl9 -p1234569       ok

 

比较两组的show slave status\G;

102

 

           Slave_IO_Running: No

          Slave_SQL_Running: Yes

            Replicate_Do_DB: test

        Replicate_Ignore_DB: mysql

 

 

sudo /etc/init.d/mysql restart

sudo service mysql restart   以后就变成:lave_IO_Running: YES

 

 

 

出现的问题(多主自增长ID重复)

 

解决方法:

我们只要保证两台服务器上插入的自增长数据不同就可以了

如:A查奇数IDB插偶数ID,当然如果服务器多的话,你可以定义算法,只要不同就可以了

 

在这里我们在A,B上加入参数,以实现奇偶插入

 

Amy.ini上加入参数

 

auto_increment_offset = 1

auto_increment_increment = 2

这样Aauto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID

 

Bmy.ini上加入参数

 

auto_increment_offset = 2

auto_increment_increment = 2

这样Bauto_increment字段产生的数值是:2, 4, 6, 8, …等偶数ID

 

可以看出,你的auto_increment字段在不同的服务器之间绝对不会重复,所以Master-Master结构就没有任何问题了。当然,你还可以使用3台,4台,或者N台服务器,只要保证auto_increment_increment = N 再设置一下auto_increment_offset为适当的初始值就可以了,那样,我们的MySQL可以同时有几十台主服务器,而不会出现自增长ID重复。

 

在这里我们说的是2MYSQL服务器,你也可以扩展到多台,实现方法类似

A -> B -> C-> D ->A

这样一个环形的备份结构就形成了,最后可要记住 自增长ID(主键)要设计好哦,否则会出错的。

 

1
1
分享到:
评论

相关推荐

    mysql 主主同步 步骤资料

    mysql 主主数据同步 步骤。关键步骤给出。按步骤走 必然可以

    Keepalive+mysql主主同步.pdf

    "Keepalive+mysql主主同步" Keepalive+mysql主主同步是指在高可用性环境中,使用Keepalive和MySQL主主同步技术来实现数据库的高可用性和负载均衡。下面是相关的知识点: 一、Keepalive简介 Keepalive是一个高可用...

    mysql主主同步配置

    ### MySQL 主主同步配置详解 #### 一、概念与原理 在MySQL的主主同步配置中,两个服务器之间实现双向的数据复制,确保数据的一致性和高可用性。这种配置方式适用于对数据同步要求较高且希望避免单点故障的场景。 ...

    MySQL 主主同步配置步骤

    MySQL 主主同步是一种高可用性和高冗余性的数据库部署模式,允许两个MySQL服务器相互复制数据,使得任何一个服务器发生故障时,另一个服务器可以无缝接管服务,确保数据的持续可用性。以下将详细介绍配置MySQL主主...

    LVS+Keepalived+MySQL半同步主主复制高可用方案.docx

    【LVS+Keepalived+MySQL半同步主主复制高可用方案】 1. 方案概述 LVS(Linux Virtual Server)结合Keepalived构建的高可用解决方案,通常用于实现负载均衡和故障转移,以提高系统的整体可用性。在这个方案中,MySQL...

    MySQL的主从复制、半同步复制、主主复制详解

    MySQL复制技术的几种主要类型包括主从复制、半同步复制和主主复制,它们在数据库架构中扮演着重要的角色。下面将对这些复制技术进行详细解释。 首先,主从复制是最常见的复制方式,它涉及一个主服务器(Master)和...

    图文演示双机热备mysql主主模式配置全过程.pdf

    至此,我们已经详细地了解了MySQL主主模式配置的全过程,包括准备工作、配置同步账户、修改配置文件、启动同步服务和检查同步状态等关键步骤。这整个过程涉及到多个关键点,包括理解双机热备的原理、配置和使用二...

    MySQL主主双向同步测试报告.pdf

    MySQL主主双向同步是一种高可用性和高冗余性的数据库部署模式,它允许两台MySQL服务器互相作为主服务器和从服务器,实现数据的实时双向同步。这样,任何一台服务器上的数据更改都会被复制到另一台服务器上,提高了...

    MySQL主备同步配置手册

    MySQL主备同步配置手册详细知识点: 1. 开启MySQL主服务器的二进制日志机制: - 二进制日志记录了对数据库的更改操作,例如表结构的更改、数据更新等。在生产环境中,二进制日志对于数据恢复和主备同步非常重要。 ...

    mysql高可用+mysql双主

    配置两台 MySQL 主主同步: ### 原理 在 MySQL 高可用配置中,我们需要确保两台服务器之间的数据是一致的。这可以通过binlog来实现。binlog是 MySQL 的二进制日志,记录了所有的数据库操作。通过配置binlog,我们...

    Mysql一键数据库同步和主主同步脚本

    MySQL数据库同步和主主同步是数据库管理中的重要概念,尤其对于需要实时数据共享或高可用性的系统至关重要。这里我们详细探讨这两个主题,并介绍如何通过特定的脚本来简化这一过程。 首先,**数据库同步**指的是将...

    mysql同步,双向同步

    MySQL同步是指将多个数据库服务器之间的数据保持实时同步的过程。这种技术可以应用于分布式系统、数据备份、灾难恢复等场景。在这个资源中,我们将详细介绍如何配置 MySQL 双向同步。 MySQL同步的重要性 在数据...

    Nginx实现MYSQL主备高可用

    MySQL主备复制是指在一个MySQL集群中,主服务器负责处理所有写操作,而从服务器则同步主服务器的数据变更,实现数据备份和读取负载分担。这种模式可以提供高可用性,因为即使主服务器出现故障,从服务器也能无缝接管...

    mysql集群多主同步教程.zip

    MySQL集群是一种用于提高数据库服务高可用性和横向扩展性的解决方案,多主同步是其中的一种策略。在MySQL集群中,多主配置意味着每个节点都可以作为主节点,既可以读取也可以写入数据,并且这些节点之间会进行数据...

    mysql-oracle数据同步

    本文将深入探讨MySQL到Oracle的数据同步过程,以及如何在同步过程中修改MySQL数据表的标识。 首先,我们要理解MySQL和Oracle是两种不同的关系型数据库管理系统(RDBMS)。MySQL以其开源、轻量级、高效的特点被广泛...

    MySQL高可用方案探究.pdf

    架构通常包括一个LVS服务器、两台MySQL主主同步服务器(一台为主节点,一台为备节点)以及若干个读取负载的从节点。LVS负责分发请求,Keepalived监控主节点状态并进行故障转移。 2.3 方案优缺点 优点:提供高可用性...

Global site tag (gtag.js) - Google Analytics