MySQL双机主从同步与双向同步

第一部分:主从关系的同步

master端 192.168.0.1
slave端  192.168.0.2

1。MASTER端
a.进入mysql,创建一个数据库abc:
      create database abc;
b.创建一个用来同步的用户,指定只能在192.168.0.2登录:
      grant replication slave on *.* to ‘ha‘@‘192.168.0.2‘ identified by ‘hapwd‘;
c.修改master端的/etc/my.cnf文件
      server_id = 1 (为1表示master,2表示slave)
      binlog-do-db = abc (abc表示要同步的数据库),如果有多个数据库,每个数据库一行
      binlog-ignore-db= mysql    设置不需要同步的数据库,每个数据库一行 (一般这条可以不写)
      log-bin = mysql-bin
d.重启mysql

2。SLAVE端
a.修改slave端的/etc/my.cnf文件
      server_id = 2
      log-bin = mysql-bin
      master-host = 192.168.0.1
      master-user = ha
      master-password = ‘hapwd‘ (如果为空也要打上两个单引号)
      master-port = 3306 (根据具体设置的端口号填)
      master-connect-retry = 10 连接重试次数
      replicate-do-db = abc 要接收的数据库名,如果有多个数据库,每个数据库一行
      replicate-ignore-db= mysql   设置不要接收的数据库,每个数据库一行   (一般这条可以不写)
b.重启mysql
      配置成功后会在mysql目录下生成master.info,如果要更改slave设置,要先将master.info删除,才会起作用
c.进入mysql,执行:
      slave start;
   用show slave status 或show master status 查看同步情况

第二部分:双向关系的同步

master端 192.168.0.1
slave端  192.168.0.2

1。MASTER端
a.进入mysql,创建一个数据库abc:
      create database abc;
b.创建一个用来同步的用户,指定只能在192.168.0.2登录:
      grant replication slave on *.* to ‘ha‘@‘192.168.0.2‘ identified by ‘hapwd‘;
c.修改master端的/etc/my.cnf文件
     log-bin
     server-id = 1
     sql-bin-update-same 同步模式 ,在mysql5以上的版本都不需要这句,否则会启动不了mysql服务 
     binlog-do-db= abc    设置同步数据库,如果有多个数据库,每个数据库一行
     binlog-ignore-db = mysql 设置不要同步的数据库,如有多个数据库,每个数据库一行
     master-host=192.168.0.2
     master-user=ha
     master-password=‘hapwd‘
     master-port=3306
     master-connect-retry=10
     replicate-do-db=abc   设置要接收的数据库,如有多个数据库,每个数据库一行
     replicate-ignore-db= mysql   设置不要接收的数据库,每个数据库一行   (一般这条可以不写)
     log-slave-updates    在mysql5以上的版本都不需要这句
d.重启mysql
e.进入mysql,执行:
     slave start;

2。SLAVE端
a.进入mysql,创建一个数据库abc:
      create database abc;
b.创建一个用来同步的用户,指定只能在192.168.0.1登录:
      grant replication slave on *.* to ‘ha‘@‘192.168.0.1‘ identified by ‘hapwd‘;
c.修改slave端的/etc/my.cnf文件
     log-bin
     server-id       = 2
     binlog-do-db= abc    设置同步数据库,如果有多个数据库,每个数据库一行
     binlog-ignore-db = mysql 设置不要同步的数据库,如有多个数据库,每个数据库一行
     sql-bin-update-same   同步模式 ,在mysql5以上的版本都不需要这句,否则会启动不了mysql服务 
     master-host=192.168.0.1
     master-user= ha
     master-password=‘hapwd‘
     master-port=3306
     master-connect-retry=10
     replicate-do-db=abc   设置要接收的数据库,如有多个数据库,每个数据库一行
     replicate-ignore-db= mysql   设置不要接收的数据库,每个数据库一行   (一般这条可以不写)
     log-slave-updates   在mysql5以上的版本都不需要这句
d.重启mysql
e.进入mysql,执行:
     slave start;

注意:
1。如果有一端修改了数据后,另一端接收不到,手工执行命令load data from master;就可以了
2。如果因为误删了二进制日志文件导致无法同步,则执行:(这几步很有用,你甚至可以把slave上的abc库删除掉,他会自动从master上复制过来重建)
slave stop;
reset slave;
slave start;
3。我们经常会在reset slave后发现重新同步时会出现重复数据无法倒入的情况,比如:
               Last_Errno: 1062
                 Last_Error: Error ‘Duplicate entry ‘1472533‘ for key 1‘ on query. Default database: ‘epg‘. Query: ‘insert into boot_info(stbid,begintime)
                values(‘zk124070c819‘,‘1259128442‘)‘
这时可以这样,跳过冲突的这一行:
slave stop;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;  
slave start;
时间: 2024-11-03 01:32:59

MySQL双机主从同步与双向同步的相关文章

mysql双机主从方案

mysql双机主从集群架构,可以实现mysql数据库数据的安全性和高可用性.在每台mysql数据库服务器上安装一套mysql程序,数据库物理文件均在本机硬盘中,通过mysql主从复制架构,即时同步数据,如果主服务器mysql数据库宕机,另外一台备机可以通过手动切换暂时承担起全部功能,并且可以根据存活主机的数据库及时完整恢复宕机服务器的数据库,以达到高可用性的目的. 主服务器:192.168.10.91(db01) 从服务器:192.168.10.92(db02) 具体实施步骤: 一.创建并授权用

mysql实现,一主多从+级联同步+双向同步

实验: 一主多从 3307配置: [mysqld] log-slave-updates #中间者需要开这个 log-bin = /data/3307/mysql-bin expire_logs_days = 7                 #binlog保存多少天 find –mtime +7 防止从库被写忽略同步db.或者从库回收权限: [mysqld] slave-skip-errors = 1032,1062 replicate-ignore-db = mysql binlog-ign

unison+inotify实现数据实时双向同步

1.unison简介 Unison是windows和unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致,也支持经由过程SSH.RSH和Socket同步支持双向同步.Unison有文字界面和图形界面,这里只介绍如何在文字界面下使用. unison拥有其它一些同步工具或文件系统的相同特性,也有自己的特点,可以跨平台使用,对内核和用户权限没有特别要求,unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略:只要是

unison 双向同步

两台主机,一台本地主机ip:192.168.200.36   ,一台远程主机ip:192.168.200.28 在36主机和28主机上安装unison-full软件包cd 到unison-full软件包目录下安装 rpm -ivh unison-2.40.63-1.el6.rfx.86_64\\(11).rpm 在36主机上生成密钥证书  ssh-keygen -d  回车直至密钥生成 把公共密钥发给远程客户端 ssh -copy -id -i /root/.ssh/id_dsa.pub. [e

mysql 之 主从加 keepalive 在生产系统应用(zabbix)

我们的生产平台上使用了zabbix,zabbix使用的数据库是mysql,并且数据量还比较大,每个月产生的数据文件有10G以上,经过上篇<mysql 之 主从数据加keepalive>的操练之后,具备了向生产系统运用的条件,选用生产系统的zabbix(开源监控平台) 练手非常合适. 原系统是单机系统, zabbix采用的是linux+apache+mysql+PHP环境,典型的LAMP,现在我们需要做的就是将mysql变成 主从双 机,并且在主从双机上安装配置keepalived,最后  将p

mysql主从同步-双向同步2

数据库同步复制功能的设置都是在mysql的配置文件(liunx 下是为/etc/my.cnf)中体现的.主要工作原理为slave端记录并且执行master端的操作日志.? 分别登录master机和slave机的mysql:mysql –u root –p? 创建数据库:create database repl;? 1.设置同步master? 编辑配置文件 /etc/my.cnf 确保有如下行? 创建一个mysql的账号为同步专用? 重启master mysql? 查看master状态? 查看进程

MySQL Dual-Master 双向同步

本文介绍的Mysql Dual-Master 复制实施方法可能不是最完美.最强大的.但是在我的应用环境下能很好的满足各项需求. 本文基于我们仅仅使用两台MySQL服务器的情况下,但是你会发现文章中介绍的方法可以很方便的应用于多台服务器的环境下.同样地,我们假设您将用于同步复制的数据库已经在其中一台MySQL服务器上建好了.最后,在开始所有工作之前,我们必须调整所有服务器的防火墙策略以保证彼此能访问对方的3306端口. 环境: 操作系统:CentOS 5.4 x86 MySQL版本:5.0.77

利用percona-toolkit 工具来检测mysql 主从数据库同步以及实现同步

环境: OS: Cenos6.5_x64 , 主:192.168.100.164 ,从:192.168.100.176 软件: percona-toolkit . mysql56-community 同步的库: dj1 , cnhd , shanhu 备要信息:要尽量保证主从mysql的版本相同,因为5.6以上的版本支持了Gtid的特性,与低版本做从主时,会产生不可以预计的问题. 一.安装: Quick Install -------------    perl Makefile.PL    m

后端分布式系列:分布式存储-MySQL 数据库双向同步复制

MySQL 复制问题的最后一篇,关于双向同步复制架构设计的一些设计要点与制约. 问题和制约 数据库的双主双写并双向同步场景,主要考虑数据完整性.一致性和避免冲突.对于同一个库,同一张表,同一个记录中的同一字段的两地变更,会引发数据一致性判断冲突,尽可能通过业务场景设计规避.双主双写并同步复制可能引发主键冲突,需避免使用数据库自增类主键方案.另外,双向同步潜在可能引发循环同步的问题,需要做回环控制. 如上图所示,复制程序写入时也会产生 binlog,如何识别由复制程序产生的 binlog 并将其过