需要两台MySQL主机做服务器:
MySQL的创建方法参见:创建MySQL数据库
Server-1:192.168.0.1
Server-2:192.168.0.2
 
一、创建并授权用户
这一步在每一台(主)服务器上创建一个用户,并为之授权,使它们可以互相访问彼此的数据库
 
在Server-1上:
创建一个充许Server-1来访问的用户server2,密码为:server2
mysql> GRANT REPLICATION SLAVE ON *.*
     > TO 'server2'@'192.168.0.2'  IDENTIFIED BY 'server2';
    
在Server-2上:
创建一个充许Server-1来访问的用户server1,密码为:server1
mysql> GRANT REPLICATION SLAVE ON *.*
     > TO 'server1'@'192.168.0.1'  IDENTIFIED BY 'server1';
    
    
二、修改MySQL主配置文件
在MySQL的主配置文件中修改/添加如下内容:
Server-1上:
 [mysqld]
 server-id = 10
 log-bin = mysql-bin
 replicate-do-db = mydb
 auto-increment-increment = 2
 auto-increment-offset = 1

replicate-ignore-db =mysql
# service mysqld restart
 
Server-2上:
 [mysqld]
 server-id = 20
 log-bin = mysql-bin
 replicate-do-db = mydb
 auto-increment-increment = 2
 auto-increment-offset = 2

replicate-ignore-db =mysql

# service mysqld restart
 
注:二都只有server-id不同和 auto-increment- offset不同
    auto-increment-offset是用来设定数据库中自动增长的起点的,回为这两能服务器都设定了一次自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突
    replicate-do-db 指定同步的数据库,我们只在两台服务器间同步mydb数据库
另:auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2
 
 
三、复制其中一台服务器的数据库到别外一台服务器
这一步中谁做为源数据不重要,重要的是在正式的复制(Replication)开始之前两台服务都能准备的反应彼此的数据。
我们可以先从源数据库中导出数据到备份文件,这里我们使用mysqldump命令
 
以Server-1上数据库为源数据库
备份数据前先锁表,保证数据一致性
mysql> FLUSH TABLES WITH READ LOCK;
     > SHOW MASTER STATUS;
+-----------------+------------+----------------+--------------------+
|File             | Position   |  Binlog_Do_DB  |  Binlog_Ignore_DB  | 
+-----------------+------------+----------------+--------------------+
|mysql-bin.000006 |       213  |                |                    |
+-----------------+------------+----------------+--------------------+
1 row in set (0.01 sec)
该结果显示,源服务器现在处于6号二进制文件的213位置
 
开始备份数据库
# mysqldump --user=root -p mydb > /tmp/mydb.sql
备份完毕,现在可以解锁数据库表
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)
 
 
四、将备份数据导入Server-2
先在Server-2上创建一个与mydb同名的空数据库
# mysql
    > CREATE DATABASE mydb;
    >\q
# scp 192.168.0.1:/tmp/mydb.sql  ./
# mysql -uroot -p mydb < /tmp/mydb.sql
 
此时,我们需要注意当前服务器的二进制日志的位置
# mysql
    > LOCK TALBES WITH READ LOCK;
    > SHOW MASTER STATUS;
+-----------------+------------+----------------+--------------------+
|File             | Position   |  Binlog_Do_DB  |  Binlog_Ignore_DB  | 
+-----------------+------------+----------------+--------------------+
|mysql-bin.000001 |       106  |                |                    |
+-----------------+------------+----------------+--------------------+
1 row in set (0.00 sec)
    > UNLOCK TABLES;
    > \q
 
 
五、互相通告二进制日志位置
 
在Server-1上:
# mysql
   > CHANGE MASTER TO
   > MASTER_HOST='192.168.0.2',
   > MASTER_USER='master1',
   > MASTER_PASSWORD='master1',
   > MASTER_LOG_FILE='mysql-bin.000001',
   > MASTER_LOG_POS=106;
  
  
在Server-2上:
# mysql
   > CHANGE MASTER TO
   > MASTER_HOST='192.168.0.1',
   > MASTER_USER='master2',
   > MASTER_PASSWORD='master2',
   > MASTER_LOG_FILE='mysql-bin.000006',
   > MASTER_LOG_POS=213;
   
六、启动复制(Replication)功能
在两台主机上分别执行
# mysql
   > START SLAVE;
  
配置到此完成!
 
测试:
在任意一台服务器上创建一个数据库
# mysql
   > CREATE DATABASE repltest;
   > USE repltest;
   > CREATE TABLE test(
   > name  char(30));
   > \q
#
  
在另一台服务器上查看数据库信息:
# mysql
   > SHOW DATABASES;
 结果中将显示有一个名为replrtest的数据库

转载于:https://blog.51cto.com/kkkkkk/1181674

mysql 主主复制相关推荐

  1. mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...

  2. mysql主主复制、主从复制、半同步的实现

    实验前提:两台服务器 Master server:172.16.23.1 slave server:172.16.23.2 一.mysql主从服务器实现 简单介绍: MySQL支持单向.异步复制,复制 ...

  3. mysql 主从,主主,主主复制时的主键冲突解决

    原理:slave 的i/o thread ,不断的去master抓取 bin_log, 写入到本地relay_log 然后sql thread不断的更新slave的数据 把主服务器所有的数据复制给从服 ...

  4. Mysql之主从复制及主主复制

    环境: 2台数据库服务器(centos6.5,mysql5.6) 假设ip为192.168.1.11和192.168.1.12 主从复制 192.168.1.11  为主数据库服务器 192.168. ...

  5. keepalive 配合mysql主主复制

    keepalive安装(配合mysql主主复制) 系统:centos5.5_64 #vip为程序读取mysql的IP,应和程序服务器的网卡一个网段 主库实际IP   192.168.10.48 从库实 ...

  6. 运维工程师必备之MySQL数据的主从复制、半同步复制和主主复制详解

    一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费 ...

  7. mysql主从复制,半同步,主主复制架构的实现

    mysql的数据同步功能,不仅在一定程度上提供数据库查询时的负载均衡,而且为实现数据库的冗灾.备份.恢复.负载均衡等都是有极大帮助.而数据的同步功能可以通过主从复制来实现,而主从复制是异步进行的,并且 ...

  8. php mysql 主从复制_Windows 环境下,MySQL 的主从复制和主主复制

    Mysql的主从配置 1.找到配置文件 找到配置文件是主从复制的第一个难点.很多新手都容易找错配置文件,一般my.ini配置文件所在的位置都是隐藏的. 一般人都以为配置文件为 C:\Program F ...

  9. linux mysql 自动加斜杠_【实战演练】Linux操作系统19-Mysql主主复制加Keepalived高可用...

    理论部分,在之前的文章已经说明过了,详见: 繁星亮与鲍包包:[理论研究]业务系统高可用及负载均衡​zhuanlan.zhihu.com 上一篇已经讲述对2台Mysql服务器做主主复制,实现Mysql数 ...

  10. Mysql主主复制架构配置

    MySQL主主复制结构区别于主从复制结构.在主主复制结构中,两台服务器的任 何一台上面的数据库存发生了改变都会同步到另一台服务器上,这样两台服务器 互为主从,并且都能向外提供服务. 这就比使用主从复制 ...

最新文章

  1. 无线信标功能调试-2021-3-9-HALL检测与主控接口
  2. JS字符串的下划线命名和驼峰命名转换
  3. linux查看硬件信息的命令(图文)
  4. android cmd
  5. jboss、weblogic介绍
  6. html¥符号代码是什么,html怎么特殊符号赋
  7. docker学习3-虚拟网络模式
  8. Visio从安装到使用完整版
  9. 珠宝电商探索之路实战分享
  10. Image Processing in the Spatial Domain 空间域图像处理
  11. 学习突围3 - 关于精力
  12. [PTA]习题9-3 平面向量加法
  13. c# chart缩放,局部放大
  14. 编写一个简单Java程序,计算银行年存款的本息
  15. Task02 python与excel
  16. php 上标和下标,网页中各种上标和下标的应用实例
  17. 2020大二下期学期计划
  18. 让 Nginx 支持 WAF 防护功能web防火墙 - 沧海一粟 - Web系统架构与服务器运维,php开发...
  19. ubuntu下以管理员权限开机自启动自己的程序
  20. Intel(R) 6 Series/C200 Series Chipset Family USB Enhanced Host Controller 1c2d

热门文章

  1. BP神经网络:feedforwardnet版回归预测
  2. 我的世界物品java修改代码大全,我的世界秘籍_物品代码秘籍中文大全_蚕豆网攻略...
  3. winform利用html开发,.NET使用Cefsharp开发winform项目入门示例
  4. 全国计算机二级基础知识ppt,有关全国计算机二级基础知识.ppt
  5. Matlab曲线标记间距自定义
  6. softmax回归的从零开始实现
  7. AI学习笔记(十)卷积神经网络
  8. 使用Bert/ERNIE进行中文短文本分类(附数据集)
  9. 2019斯坦福CS224n深度学习自然语言处理笔记(1)Word2Vec与Glove
  10. 深度学习 目标检测 算法大全列表