原理:slave 的i/o thread ,不断的去master抓取 bin_log, 写入到本地relay_log 然后sql thread不断的更新slave的数据

把主服务器所有的数据复制给从服务器

slave_sql_running 主从的sql进程

slave_io_running 主从的io进程

seconds_behind_master 主从的数据延时

主从步骤

1.数据库2边同步,设置my.cnf

[mysqld]

log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 10
log-bin=master-bin
log-bin-index=master-bin.index
binlog_ignore_db=mysql
binlog_ignore_db=infomation_schema
binlog_ignore_db=performance_schema

2.在master上建立mysql用户,给slave用

created user 'ruser'@'%' indentified by 'ruserpwd'  建立用户

grant replication slave on *.* to 'ruser'@'%' 用户授权

第二种方法:grant replication client,replication slave on *.* to 'ruser'@'192.168.%.%' identified by '密码123'

格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”;

grant all privileges on *.* to 'root'@'%' identified by 'wangxiaohu';  所有权限

flush privileges

reset master; 清空master

reset slave; 清空slave

show master logs; 查看日志

show master status \G  查看master状态,当前日志,及位置master_log_file,master_log_pos

3.从服务器my.ini 配置

[mysqld]

server-id = 2
expire_logs_days = 10
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin

slave 从服务器上登录mysql运行change master 命令

show slave status \G 查看slave状态

change master to

MASTER_HOST='192.168.1.1'  ,

MASTER_USER='' , //主服务器的帐号

MASTER_PASSWORD='',

MASTER_PORT=3306,

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=0;

4.start slave;

主主复制时的主键冲突解决

设置my.cnf里面的2个参数auto_increment_increment,auto_increment_offset

让1台服务器  1,3,5,7来增长

另1台服务器  2,4,6,8来增长

一台服务器:

set global auto_increment_increment = 2;  // 全局

set global auto_increment_offset = 1;

set session auto_increment_increment = 2; //当次连接

set session auto_increment_offset = 1;

另一台服务器:

set global auto_increment_increment = 2;

set global auto_increment_offset = 2;

set session auto_increment_increment=2;

set session auto_increment_offset = 2;

注:auto-increment-increment 和 auto-increment-offset 要写到配置文件 中,防止下次重启后失效.

有几台服务器,auto_increment_increment就设置几,比如3台服务器,auto_increment_increment=3,  3台服务器的auto_increment_offset依次开始为,1,2,3

备注:
log-slave-updates是为从库的写操作记录binlog
多主互备和主从复制有一些区别,因为多主中的各个库,都可以对服务器有写权限,所以设计到自增长重复问题

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

在这里我们说的是2台MYSQL服务器,你也可以扩展到多台,实现方法类似
A -> B -> C-> D ->A
这样一个环形的备份结构就形成了,最后可要记住 自增长ID(主键)要设计好哦,否则会出错的。

转载于:https://www.cnblogs.com/microtiger/p/7459321.html

mysql 主从,主主,主主复制时的主键冲突解决相关推荐

  1. mysql1.2.17,17.1 MySQL主从介绍17.2 准备工作17.3 配置主17.4 配置从17.5 测试主从同步...

    - 17.1 MySQL主从介绍 - 17.2 准备工作 - 17.3 配置主 - 17.4 配置从 - 17.5 测试主从同步 # 17.1 MySQL主从介绍 -  MySQL主从又叫做Repli ...

  2. mysql主主 主键冲突_mysql主从复制原理,主主复制时主键冲突解决

    主从复制原理: 1.master的增删改记录写入binlog: 2.slave的I/O Thread(负责读取master的binlog)读取binlog并将记录写入relaylog: 3.slave ...

  3. 17.1 MySQL主从介绍 17.2 准备工作 17.3 配置主 17.4 配置从 17.5 测试主从同步

    2019独角兽企业重金招聘Python工程师标准>>> 第十七章 MySQL主从配置 17.1 MySQL主从介绍 MySQL主从又叫做Replication.AB复制.简单讲就是A ...

  4. MySQL主从同步(一主一从、一主多从、主从从)等结构的概述与配置

    前言:前面我们了解了MySQL数据库的基础知识,今天及接下来的五天时间里我会给大家带来MySQL进阶方面的一些学习总结,如有不足,还请大家留言指出:下面我们就开始今天的内容. ** 部署mysql主从 ...

  5. MySQL与Oracle主键冲突解决方式

    1.MySQL主键冲突 当主键冲突时,可以选择更新或替换 1.1 主键冲突 主键冲突: mysql> desc my_class; +-------+-------------+------+- ...

  6. mysql主从切换gtid不一致_GTID 复制、主从不一致跳过操作、快速切换master

    1. 部署 GTID 全局事务标识  mysql 5.6 加入 1.1 准备 配置文件 ## gtid repl config need server_id=52 #开启gtid gtid_mode= ...

  7. mysql插入时间区间_mybatis插入数据时返回主键以及MySQL根据时间区间查询问题总结...

    最近做项目的过程中,在数据库方面遇到了两个问题,一是在插入一条数据的时候需要将该条数据的主键返回.二是根据时间区间进行查询时某一天的数据查询不到,在此总结记录一下. 1.如何在插入一条数据的同时将主键 ...

  8. app mysql图片存储空间不足,光影魔术手处理照片时提示存储空间不足的解决办法介绍...

    光影魔术手是一款好用又经典的图片处理软件,但是不少朋友在允许光影魔术手时可能遇到过存储空间不足的问题,而又不知道怎么解决,只好重启程序.小编这里来教大家一招 软件名称:光影魔术手 nEO iMAGIN ...

  9. mysql 自动维护uuid_MySQL实现自动使用uuid作为主键以及解决不能调用触发器的一点思路...

    这里使用触发程序实现此功能. 触发程序语法如下: Create trigger {before|after} {insert|update|delete} On For each row 核心代码: ...

最新文章

  1. 宝塔服务器环境好不好_服务器环境怎么搭建?(宝塔环境搭建教程)
  2. Codeforces Round #297 (Div. 2)D. Arthur and Walls 搜索bfs
  3. iTween基础之功能简介
  4. 网易青果后端系统设计窥探(含直播方案踩坑往事)
  5. 线性代数及其应用(part3)--对角化
  6. centos php 开启libgdgd_CentOS6.6下yum安装PHP的gd库失败?-问答-阿里云开发者社区-阿里云...
  7. 【转】android多分辨率适配
  8. Hibernate读书笔记
  9. LeetCode 413. 等差数列划分(DP)
  10. c 程序设计语言第1 3部分,《C程序设计语言(第2版新版)典藏版》 —1.3 for语句...
  11. 泛微oa连接mysql,泛微OA 数据库维护笔记(e-cology)
  12. 新浪微博数据采集以及人群画像分析
  13. 【c语言数学函数库】
  14. 小米路由器青春版刷Padavan固件
  15. 美团饿了吗CPS红包,别人领红包下单,你拿推广佣金(附源码)
  16. 关于微信支付预下单【统一下单】“操作超时”问题
  17. jupyter中markdown模式编辑文本格式
  18. png图片与svg图片的转换----icon图标的制作
  19. 【社区图书馆】读书推荐:《PyTorch高级机器学习实战》
  20. 项目实训2021.07.07

热门文章

  1. 21世纪20年代改变世界的十大趋势
  2. 耐能团队论文登上《自然·电子学》:集成忆阻器与CMOS以实现更好的AI
  3. 斯坦福大学陈丹琦等人解读机器阅读最新进展:超越局部模式匹配
  4. 硅片行业:过剩背景下的寡头市场
  5. 作弊阴影罩棋盘,人工智能咋避嫌?
  6. 2018年中国人工智能行业研究报告|附下载
  7. 从 ACM 训练领悟坚持之道
  8. 漫画:程序教你玩转股票
  9. 输入法大战,你用哪家输入法? | 每日趣闻
  10. 关于Input内容改变的触发事件