mysql数据库主主同步方案

合集下载

mysql数据同步原理

mysql数据同步原理

mysql数据同步原理MySQL数据同步原理是指将一个MySQL数据库的数据同步到另一个MySQL 数据库的过程。

以下是MySQL数据同步的基本原理:1. 主从复制:MySQL数据同步最常用的方式是通过主从复制。

在主从复制中,一个MySQL实例(称为主节点)充当数据的源,而另一个MySQL实例(称为从节点)充当数据的副本。

主节点将更新的数据写入二进制日志(binary log),然后从节点通过读取二进制日志的内容来复制主节点的数据。

2. 二进制日志(binary log):二进制日志是记录了主节点上所有修改操作的日志文件,包括插入、更新和删除操作。

从节点通过读取主节点的二进制日志来获取更新的数据,并应用到自己的数据库中。

3. 主从同步过程:主节点在每次提交事务时将更新的数据写入二进制日志,并通知从节点进行同步。

从节点根据主节点发送的二进制日志的位置信息,从相应的位置开始读取二进制日志内容,并将读取的日志内容应用到自己的数据库中,以实现数据的同步。

4. 主节点变更:如果主节点发生故障或需要升级,需要将一个从节点提升为新的主节点。

在这种情况下,需要使用CHANGE MASTER TO 语句将其他从节点切换到新的主节点,并重新进行主从同步。

主节点变更时需要注意的是主从数据的一致性和可用性。

5. 高可用性:为了保证数据同步的高可用性,可以使用主从复制的集群架构,如主主复制或主从链复制,可以实现数据的多点复制和故障转移。

总结起来,MySQL数据同步的基本原理是通过主从复制,主节点将更新的数据写入二进制日志并通知从节点进行同步,从节点根据主节点发送的二进制日志的位置信息读取日志内容并应用到自己的数据库中,从而实现数据的同步。

数据库主从同步配置MySql数据双向同步配置的方法

数据库主从同步配置MySql数据双向同步配置的方法

数据库主从同步配置MySql数据双向同步配置的方法配置MySQL数据库的主从同步可以实现数据的双向同步,以下是一种常见的配置方法:1. 确保两台MySQL服务器之间能够互相访问,比如在操作系统级别上配置好网络和防火墙规则。

2. 在主服务器上,编辑MySQL配置文件(f或my.ini),找到并修改以下几个参数:```server-id = 1 #设置服务器唯一ID,主服务器设为1,从服务器设为不同的值log_bin = mysql-bin #开启二进制日志记录功能binlog_format = row #设置二进制日志的格式为行级格式```3. 在主服务器上重启MySQL服务,使配置生效。

4. 在主服务器上创建一个专门用于主从同步的账号,并授予对应的权限。

比如创建一个账号名为replication的账号,并为其授予REPLICATION SLAVE权限:```sqlCREATE USER 'replication'@'从服务器IP' IDENTIFIED BY '密码';GRANT REPLICATION SLAVE ON *.* TO 'replication'@'从服务器IP';FLUSH PRIVILEGES;```5. 在从服务器上,编辑MySQL配置文件(f或my.ini),找到并修改以下几个参数:```server-id = 2 #设置服务器唯一ID,主服务器设为1,从服务器设为不同的值 log_bin = mysql-bin #开启二进制日志记录功能binlog_format = row #设置二进制日志的格式为行级格式```6. 在从服务器上重启MySQL服务,使配置生效。

7. 在从服务器上执行以下命令,配置主从关系:```sqlCHANGE MASTER TOMASTER_HOST ='主服务器IP',MASTER_PORT = 主服务器端口号,MASTER_USER ='replication',MASTER_PASSWORD ='密码',MASTER_LOG_FILE ='主服务器当前二进制日志文件名',MASTER_LOG_POS = 主服务器当前二进制日志位置;```8. 在从服务器上启动从服务器的复制进程:```sqlSTART SLAVE;```9. 在主服务器上执行以下命令,查看主从同步状态:```sqlSHOW MASTER STATUS;```10. 在从服务器上执行以下命令,查看主从同步状态:```sqlSHOW SLAVE STATUS;```以上是一种常见的MySQL数据库主从同步配置方法,根据实际情况可能还需要进行其他配置和调优。

mysql 主从同步原理

mysql 主从同步原理

mysql 主从同步原理MySQL主从同步原理是指MySQL的主从复制功能,它可以将一台MySQL服务器上的数据复制到另一台MySQL服务器,以此来保证数据在不同服务器间的一致性。

MySQL主从同步原理是通过master-slave架构实现的,即一台MySQL服务器被定义为主服务器(Master),其他服务器被定义为从服务器(Slave),主服务器上的数据会通过日志文件(binlog)的形式复制到从服务器,而从服务器又会将这些数据应用到自己的数据库中。

MySQL主从同步的实现原理主要包括三部分:第一,主服务器会将binlog日志写入到磁盘中,并通过“IO线程”将binlog日志传输到从服务器;第二,从服务器接收到binlog日志后,会通过“SQL线程”将binlog日志中的SQL语句(比如 INSERT、UPDATE 等)应用到自己的数据库中,从而完成数据的同步操作;第三,从服务器会根据主服务器中binlog日志的内容,自动执行重复操作,以确保主从服务器中的数据保持一致。

MySQL主从同步原理的实现需要确保从服务器的可靠性,因此从服务器上的MySQL是独立的,而且不能够被随意的修改,从而保证从服务器的数据正确性。

此外,MySQL还提供了多种可以控制从服务器的复制操作,比如基于位置的复制,基于表的复制,基于数据库的复制等。

另外,MySQL的主从复制可以使用不同的网络传输协议,比如TCP/IP,SSL等,以便在不同的网络环境下实现MySQL数据同步功能。

此外,MySQL还提供了可以对复制操作进行监测的功能,可以让用户更加方便的查看复制的状态以及更新的情况。

总的来说,MySQL的主从同步原理是通过利用master-slave架构,将主服务器上的数据通过binlog日志的形式复制到从服务器,并由从服务器将binlog日志中的SQL语句应用到自己的数据库中,从而实现MySQL数据同步的功能。

MySQL 数据同步 主主设置(互为主备)

MySQL 数据同步 主主设置(互为主备)

MySQL 数据同步主主设置(互为主备)两台MySQL主机做为服务器:master-1:192.168.1.99master-2:192.168.1.113一、创建并授权用户这一步在每一台(主)服务器上创建一个用户,并为之授权,使它们可以互相访问彼此的数据库在master-1上:创建一个充许master-2来访问的用户repl,密码为:replmysql> GRANT ALL PRIVILEGES ON *.* TO ' repl,'@'192.168.1.113' IDENTIFIED BY ' repl ';在master-2上:创建一个充许master-1来访问的用户repl,密码为:repl,mysql> GRANT ALL PRIVILEGES ON *.* TO ' repl,'@'192.168.1.99' IDENTIFIED BY ' repl ';备注:为了操作方便,我们在两台服务器上,指定的访问权限时,设定的用户名和密码,一摸一样二、修改主配置文件在MySQL的主配置文件中修改/添加如下内容:master-1上:[mysqld]server-id = 1log-bin = mysql-binreplicate-do-db = test #指定复制操作的数据库auto-increment-increment = 2auto-increment-offset = 1# service mysqld restartmaster-2上:[mysqld]server-id = 2log-bin = mysql-binreplicate-do-db = test #指定复制操作的数据库auto-increment-increment = 2auto-increment-offset = 2# service mysqld restart注:二都只有server-id不同和auto-increment- offset不同auto-increment-offset是用来设定数据库中自动增长的起点的,回为这两能服务器都设定了一次自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突replicate-do-db指定同步的数据库,我们只在两台服务器间同步test数据库另:auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2三、获取两台服务器的二进制日志名和偏移量在master-1上:mysql> show master status;+------------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000006 | 107 | | |+------------------+----------+--------------+------------------+1 row in set在master-2上:mysql> show master status;+------------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000008 | 107 | | |+------------------+----------+--------------+------------------+1 row in set四、两台服务器互相做相应设置在master-1上:mysql>stop slave;mysql>CHANGE MASTER TOMASTER_HOST='192.168.1.113',MASTER_USER='repl',MASTER_PASSWORD='repl',MASTER_LOG_FILE='mysql-bin.000008',MASTER_LOG_POS=107;在master-2上:mysql>stop slave;mysql>CHANGE MASTER TOMASTER_HOST='192.168.1.99',MASTER_USER='repl',MASTER_PASSWORD='repl',MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=107;五、启动slave线程在两台主机上分别执行mysql> START SLAVE;六、查看slave状态mysql> show slave status;+----------------------------------------------| Slave_IO_State| Waiting for master to send event+----------------------------------------------显示上述信息的时候,说明配置得很好,两台服务器,正在互相等待操作。

mysql数据同步方案

mysql数据同步方案

mysql数据同步方案数据库在现代应用程序中扮演着重要角色,它们负责存储和管理应用程序使用的数据。

当我们需要在多个数据库之间同步数据时,选择适当的同步方案至关重要。

本文将探讨一些常见的MySQL数据同步方案,帮助读者选择适合自己的方案。

1. 基于复制的数据同步MySQL自带了一个复制功能,可以轻松实现主从数据库之间的数据同步。

这种方案适用于需要在多个读取副本(slave)上实时复制数据的情况,主要用于读写分离和高可用性。

通过配置主数据库(master)和多个从数据库(slave),主数据库的写操作将自动被复制到从数据库,保持数据一致性。

但是需要注意的是,复制方案并不是实时的,存在一定的延迟。

2. 基于binlog的数据同步MySQL的二进制日志(binlog)记录了所有对数据库的更改,包括SQL语句和事务。

通过解析和执行binlog中的操作,可以将数据同步到其他数据库。

这种方案适用于需要将特定时间段的操作应用到其他数据库中的情况。

它提供了更高的灵活性和精确性,但也需要一些额外的开发工作。

3. 基于触发器的数据同步触发器是MySQL中的一种特殊对象,它可以在表发生特定事件时自动执行一些操作。

通过使用触发器,我们可以在源数据库的特定表上创建触发器,一旦有操作发生,触发器将被触发并将操作应用到目标数据库。

这种方案适用于需要实时同步特定数据的情况,例如当源数据库中某个表的数据发生变化时,目标数据库也需要立即更新。

4. 基于消息队列的数据同步消息队列是一种先进先出的数据结构,用于在应用程序之间传递消息。

通过将数据库操作作为消息发布到消息队列,我们可以实现异步数据同步。

源数据库发送消息,目标数据库接收并处理消息,从而实现数据同步。

这种方案适用于需要解耦源数据库和目标数据库的情况,使得两者能够独立运行和扩展。

5. 基于第三方工具的数据同步除了上述自带的同步方案,还有一些第三方工具可以帮助实现MySQL数据同步。

数据库主从同步原理

数据库主从同步原理

数据库主从同步原理MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能、更高可靠性要求的场合。

与之对应的是另一个同步技术是MySQL Cluster,但因为MySQL Cluster配置比较复杂,所以使用者较少。

MySQL的Replication是一个异步复制的过程(mysql5.1.7以上版本分为异步复制和半同步两种模式),它是从一个Mysql instance(instance英文为实例)(我们称之为Master)复制到另一个Mysql instance(我们称之slave)。

在master与slave之间实现整个复制过程主要由三个线程来完成,其中两个线程(SQL线程和IO线程) 在slave端,另外一个线程(IO 线程)在master端。

要实现MySQL的Replication,首先必须打开master端的binlog (mysql-bin.xxxxxx)日志功能,否则无法实现mysql的主从复制。

因为mysql的整个主从复制过程实际上就是:slave 端从master端获取binlog日志,然后再在自己身上完全顺序的执行该日志中所记录的各种SQL操作。

有关具体如何开启mysql的binlog日志功能,请大家自己在网上搜。

MySQL主从复制的基本交互过程,如下:1、slave端的IO线程连接上master端,并请求从指定binlog日志文件的指定pos节点位置(或者从最开始的日志)开始复制之后的日志内容。

2、master端在接收到来自slave端的IO线程请求后,通知负责复制进程的IO线程,根据slave端IO线程的请求信息,读取指定binlog日志指定pos节点位置之后的日志信息,然后返回给slave端的IO线程。

该返回信息中除了binlog日志所包含的信息之外,还包括本次返回的信息在master端的binlog文件名以及在该binlog日志中的pos节点位置。

利用MySQL实现数据的实时同步和采集

利用MySQL实现数据的实时同步和采集

利用MySQL实现数据的实时同步和采集在现代信息时代,数据成为了一种珍贵的资源。

无论是企业还是个人,数据都扮演着重要的角色。

而数据的实时同步和采集则成为了保证数据有效性和实时性的重要手段。

MySQL作为一个开源的关系型数据库管理系统,在数据同步和采集方面具有一定的优势。

本文将讨论如何利用MySQL实现数据的实时同步和采集,并探讨其中的一些技术细节。

一、概述数据的实时同步和采集是指将源数据的变化实时地同步到目标数据源中,并且能够及时采集新增数据。

这个过程涉及到数据的提取、转换和加载等环节。

MySQL作为一种功能强大的数据库管理系统,在提供了数据同步和采集的功能和技术支持。

下面将从几个方面来介绍MySQL在数据同步和采集方面的应用。

二、MySQL的数据同步MySQL的数据同步主要通过复制(replication)的方式来实现。

通过建立主从复制的关系,将主数据库中的数据变更实时地同步到从数据库中。

MySQL的复制主要分为以下几个步骤:1. 配置主服务器:在主服务器中开启二进制日志(binlog),配置好需要同步的数据库和表。

2. 配置从服务器:在从服务器中配置复制信息,指定主服务器的IP地址、用户名和密码,并指定需要同步的数据库和表。

3. 启动复制:在从服务器上启动复制进程,通过连接主服务器的binlog,不断获取主服务器上的数据变更。

通过上述步骤,就可以实现MySQL的数据同步。

当主服务器中的数据发生变化时,从服务器将会获取到这些变化,并进行相应的同步操作。

这样,数据在两个数据库之间实现了实时同步。

三、MySQL的数据采集除了数据同步,MySQL也提供了数据采集的功能。

数据采集的过程主要分为以下几个步骤:1. 配置采集源:首先需要指定采集数据的源头。

源头可以是从其他数据库复制过来的数据,也可以是其他外部数据源。

需要根据具体的情况来选择。

2. 数据抽取:在配置好采集源之后,需要通过SQL语句来进行数据抽取。

mysql主从同步原理及错误解决

mysql主从同步原理及错误解决

mysql主从同步原理及错误解决MySQL主从复制是一种常见的数据库备份和灾难恢复机制。

它允许将一个MySQL数据库(主服务器)的更改复制到一个或多个备份数据库(从服务器)上。

主从复制的原理是主服务器将更改记录到二进制日志(bin-log),从服务器通过读取主服务器的二进制日志并应用这些更改来保持与主服务器的同步。

主从同步的原理可以分为以下几个步骤:1. 主服务器将更改记录到二进制日志(bin-log):当在主服务器上进行了增、删、改等修改操作时,主服务器将生成一条对应的二进制日志记录,并将其写入到二进制日志文件中。

2.从服务器连接到主服务器:从服务器与主服务器建立连接,并请求从指定位置开始读取二进制日志。

3.主服务器发送二进制日志给从服务器:主服务器将从请求的位置开始的二进制日志传送给从服务器。

4. 从服务器将二进制日志写入到中继日志(relay-log):从服务器将接收到的二进制日志写入到中继日志文件中。

5.从服务器读取中继日志并应用更改:从服务器读取中继日志中的更改,并将其应用到从服务器的数据库中,以实现与主服务器的同步。

6.从服务器发送确认信息给主服务器:从服务器将应用成功的二进制日志位置信息发送给主服务器,用于下次同步时继续读取。

除了主从同步的原理,还有一些常见的错误可能会影响主从同步的正确运行。

以下是几种常见的错误及其解决方法:1.主从服务器时间不同步:主从服务器的时间差异会导致二进制日志的生成顺序错误,进而导致主从同步错误。

解决方法是确保主从服务器时间一致,可以使用NTP等工具进行时间同步。

2.主服务器宕机或网络故障:当主服务器宕机或网络故障时,从服务器无法继续从主服务器获取二进制日志,导致主从同步中断。

解决方法是在主服务器出现故障后,将一个从服务器提升为主服务器,然后重新配置其他从服务器与新的主服务器建立连接。

3.数据库表结构改变:如果在主服务器上修改了表结构,而从服务器没有同步相应的修改,就会导致主从同步错误。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Mysql 数据库主主(master-master)同步方案一、MySQL同步概述1.MySQL数据的复制的基本介绍目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费多久,不容乐观的未来,但是我们还是要能熟练掌握MySQL数据的架构和安全备份等功能,毕竟现在它还算是开源界的老大吧!MySQL数据库支持同步复制、单向、异步复制,在复制的过程中一个服务器充当主服务,而一个或多个服务器充当从服务器。

主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。

这些日志可以记录发送到从服务器的更新。

当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。

从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。

否则,你必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的更新之间的冲突。

单向复制有利于健壮性、速度和系统管理:健壮性:主服务器/从服务器设置增加了健壮性。

主服务器出现问题时,你可以切换到从服务器作为备份。

速度快:通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间。

SELECT查询可以发送到从服务器以降低主服务器的查询处理负荷。

但修改数据的语句仍然应发送到主服务器,以便主服务器和从服务器保持同步。

如果非更新查询为主,该负载均衡策略很有效,但一般是更新查询。

系统管理:使用复制的另一个好处是可以使用一个从服务器执行备份,而不会干扰主服务器。

在备份过程中主服务器可以继续处理更新。

2.MySQL数据复制的原理MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。

因此,要进行复制,必须在主服务器上启用二进制日志。

每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新。

认识到二进制日志只是一个从启用二进制日志的固定时间点开始的记录非常重要。

任何设置的从服务器需要主服务器上的在主服务器上启用二进制日志时的数据库拷贝。

如果启动从服务器时,其数据库与主服务器上的启动二进制日志时的状态不相同,从服务器很可能失败。

将主服务器的数据拷贝到从服务器的一个途径是使用LOAD DATA FROM MASTER语句。

请注意LOAD DATA FROM MASTER目前只在所有表使用MyISAM存储引擎的主服务器上工作。

并且,该语句将获得全局读锁定,因此当表正复制到从服务器上时,不可能在主服务器上进行更新。

当我们执行表的无锁热备份时,则不再需要全局读锁定。

MySQL数据复制的原理图大致如下:从上图我们可以看出MySQL数据库的复制需要启动三个线程来实现:其中1个在主服务器上,另两个在从服务器上。

当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。

主服务器创建一个线程将二进制日志中的内容发送到从服务器。

该线程可以识别为主服务器上SHOW PROCESSLIST的输出中的Binlog Dump线程。

从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。

第3个线程是SQL线程,是从服务器创建用于读取中继日志并执行日志中包含的更新。

在前面的描述中,每个从服务器有3个线程。

有多个从服务器的主服务器创建为每个当前连接的从服务器创建一个线程;每个从服务器有自己的I/O和SQL线程。

这样读取和执行语句被分成两个独立的任务。

如果语句执行较慢则语句读取任务没有慢下来。

例如,如果从服务器有一段时间没有运行了,当从服务器启动时,其 I/O线程可以很快地从主服务器索取所有二进制日志内容,即使SQL线程远远滞后。

如果从服务器在SQL线程执行完所有索取的语句前停止,I/O 线程至少已经索取了所有内容,以便语句的安全拷贝保存到本地从服务器的中继日志中,供从服务器下次启动时执行。

这样允许清空主服务器上的二进制日志,因为不再需要等候从服务器来索取其内容。

3.主主同步机制在主从同步的基础上继续完善,把从机当做主机,主机当做从机再按主从同步的方式配置一次就是主主同步。

二、实践1.安装环境(测试环境)主数据库(下文叫数据库A)Ip:192.168.105.54数据库:Mysql5.7 安装包mysql-installer-community-5.7.9.1.msi 系统:window server 2012 r2 standard主数据库(下文叫数据库B)Ip:192.168.105.244数据库:Mysql5.7 安装包mysql-installer-community-5.7.9.1.msi 系统:window server 2012 r2 standard2.mysql安装配置AB主机下载mysql并安装配置,参考地址如下:/article/a17d528535dd808098c8f286.h tml注意:安装完成之后修改安装文件下的my-default.ini文件为my.ini(此文件为mysql的配置文件)。

mysql环境配置计算机右键点击‘属性’,系统界面选择‘高级系统设置’,系统属性界面选择‘环境变量配置’,系统属性界面下的系统变量,点击新建按钮a.新建系统变量名称:MYSQL_HOME,值:C:\Program Files\MySQL\MySQL Server 5.7;b.系统变量选择path环境变量,编辑path在其后添加%MYSQL_HOME%\bin;c. 测试mysql1)启动命令行模式,方式一:键盘win+r,输入cmd;方式二:开始按钮查找cmd,点击命令提示符;2)启动mysql服务,方式一:命令行输入net start mysql;方式二:windows server下启动任务管理器,点击服务栏,找到mysql 服务手动开启。

Win7下计算机右键选择‘管理’,点击服务和应用程序,点击服务,找到mysql服务手动开启。

3)命令行,输入命令mysql –uroot –p;提示输入密码,进入mysql,输入quit;退出mysql。

4)关闭mysql服务,方式一:命令行输入net stop mysql;方式二:windows server下启动任务管理器,点击服务栏,找到mysql 服务手动关闭。

Win7下计算机右键选择‘管理’,点击服务和应用程序,点击服务,找到mysql服务手动关闭。

3.AB主机配置Mysql Server启动Binary Logging在A的my.ini文件(C:\Program Files\MySQL\MySQL Server 5.7,默认情况一般在C:\ProgramData\MySql\MySql Server 5.6\my.ini)中添加如下配置信息[mysqld]log-bin="C:\ProgramData\MySQL\MySQLServer5.7_01\log-bin\log-bin.log"server-id=1B的my.ini文件中添加如下配置信息[mysqld]log-bin="C:\ProgramData\MySQL\MySQLServer5.7_01\log-bin\log-bin.log"server-id=24.AB重启mysqlAB为Replication创建用户User,并赋予权限进入mysql,输入命令grant replication slave on *.* to repl@192.168.105.244 identified by 'repl' ;repl分别为用户名和密码,根据自己需要修改。

@后为另外一台主机的ip地址。

5. 查看两台Mysql Server当前bin log的位置(因为我们只需要同步两个server从当前状态之后的操作)5.1分别在两台机器上执行如下命令:FLUSH TABLES WITH READ LOCK;SHOW MASTER STATUS;A会得到如下结果B得到的结果:图中File表示当前的binary log文件名,Position是表示Binary log文件的当前位置,呆会replication应该是从这个位置开始。

6.释放lock在两台机器上执行如下命令:Unlock Tables.让两台MySql可以正常进行数据库操作。

7. 设置Slave Replication7.1 启动A的slave replication。

7.1.1 执行命令stop slave7.1.2 执行如下命令Change master to master_host='192.168.105.244',master_user='repl',master_por t=3306,master_password='repl',master_log_file='log-bin.0000 08',master_log_pos=450;7.1.3执行start slave7.1.4查看slave的状态,执行Show Slave Status\G;A显示如下:Slave_io_running和slave_sql_running显示yes,表示正确。

7.2 启动B上的slave replication7.2.1执行 stop slave7.2.2执行如下命令change master to master_host='192.168.105.54',master_user='repl',master_port =3306,master_password='repl',master_log_file='log-bin.00000 6',master_log_pos=451;7.2.3执行start slave7.2.4查看slave的状态,执行Show Slave Status\G;B显示如下:Slave_io_running和slave_sql_running显示yes,表示正确。

8. 测试replication效果8.1在A上执行mysql> create database repltest;mysql> use repltest;mysql> create table person(id int,name varchar(255)); mysql> insert into person values(1,’jensen’);8.2在B上执行:mysql> use repltest;mysql> select * from person; 验证在A上插入的记录已经同步现B上8.3在B上插入一条记录ins ert into person values(2,’jack’);8.4 A上显示select * from person;9. 自增冲突解决方式对于自增ID列,两台Server同步时会因为值一样而造成冲突。

相关文档
最新文档