环境:

A、B两台服务器分别安装mysql-5.7.18服务端,配置成互为主从同步。

linux系统版本为CentOS7

A服务器ip:192.168.1.7   主机名:test1

B服务器ip:192.168.1.8   主机名:test2

(同一局域网下)

一、准备

  1.修改主机名

   命令:hostnamectl  set-hostname  xxx

   (查看主机名 命令:hostname)

  2.关闭防火墙

   1)查看防火墙状态

    命令:firewall-cmd  --state

    结果:running

   2)防火墙是运行状态,先关闭防火墙服务

    命令:systemctl  mask  firewalld

   3)关闭防火墙

    命令:systemctl  stop  firewalld

   4)检查防火墙状态

    命令:firewall-cmd  --state

    结果:not  running

  3.关闭selinux策略

   1)查看selinux运行状态

    命令:getenforce

    结果:Enforcing

    

   2)永久性关闭(需重启电脑),编辑selinux文件vi  /etc/sysconfig/selinux修改SELINUX=disabled

    

   3)为关闭状态

    

二、配置主服务器(master)从服务器(slave)

  1.打开A服务器的my.cnf文件vi  /etc/my.cnf,在文件的[mysqld]下添加如下内容

   server-id=1       #必须与其他服务器不同,且必须为1~232之间的正整数值

   log-bin=mysql-bin

   log-bin-index=mysql-bin

   

  

   在B服务器my.cnf文件中的[mysqld]下添加上图内容,只更改server-id值即可。

   server-id=2

   log-bin=mysql-bin

   log-bin-index=mysql-bin

  2.在A服务器中的mysql安装路径下(rpm安装路径为/var/lib/mysql)创建全库备份文件all.sql。

   创建命令:touch  /var/lib/mysql/all.sql

   备份命令:[root@test1 mysql]# mysqldump -uroot -p123 --all-databases > /var/lib/mysql/all.sql

   把all.sql文件拷贝到B服务器中的某个路径下(以/var/lib/mysql路径为例)进行恢复。

   恢复命令:[root@test2 /]# mysql -uroot -p123 < /var/lib/mysql/all.sql

  3.在A、B服务器的mysql中创建用户用于同步。

   创建用户:mysql> create user 'tongbu'@'%' identified by 'tongbu';

   授权:mysql> grant all on *.* to 'tongbu'@'%';

   删除用户:mysql> drop user '用户名'@'%';

   A、B服务器用户创建完成后,测试用户相互是否可以远程登陆mysql。

  [root@test1 /]# mysql -utongbu -ptongbu -h192.168.1.8

   [root@test2 /]# mysql -utongbu -ptongbu -h192.168.1.7

  

   测试无问题后重启A、B服务器中的mysql服务:[root@test /]# service mysqld restart

  4.设置A为主服务器,B为从服务器。

   1)查看A服务器mysql中的二进制日志名和偏移量值

    命令:mysql> show master status\G

    如下图

    

   2)在B服务器中配置连接服务器

    mysql> stop slave;

    mysql> change master to

      -> master_host='192.168.1.7',

      -> master_user='tongbu',

      -> master_password='tongbu',

      -> master_log_file='mysql-bin.000024',

      -> master_log_pos=154;

    mysql> start slave;

    mysql> show slave status\G 输入此命令查看Slave_IO_Running和Slave_SQL_Running的值是否为Yes,如下图

    

  5.设置B为主服务器,A为从服务器。

   1)查看B服务器mysql中的二进制日志名和偏移量

    命令:mysql> show master status\G

    

   2)在A服务器中配置连接服务器。

    mysql> stop slave;

    mysql> change master to

      -> master_host='192.168.1.8',

      -> master_user='tongbu',

      -> master_password='tongbu',

      -> master_log_file='mysql-bin.000027',

      -> master_log_pos=154;

    mysql> start slave;

    mysql> show slave status\G 查看Slave_IO_Running和Slave_SQL_Running的值是否为Yes

至此两台mysql数据库互为主从同步配置完成。

错误排查:

1.Slave_IO_Running状态错误

 检查MySQL> show slave status\G;时,Slave_IO_Running状态为Connecting错误,出现的原因主要分为三种,需要检查配置:

 1)网络不通

 2)账户权限配置错误,如密码不对、账号错误、地址错误

 3)二进制文件位置不对

2.主备数据冲突或不同造成的异常

 主键冲突、表已存在等错误代码如1062,1032,1060等,可以在mysql配置文件指定略过此类异常并继续下条sql同步,这样可以避免很多主从同步的异常中断。打开/etc/ mysql下的my.cnf文件,在[mysqld]后添加如下代码:

 slave-skip-errors = 1062,1032,1060

3. 跳过异常恢复同步

 mysql >slave stop;

 mysql >SET GLOBAL sql_slave_skip_counter = 1;

 mysql >slave start;

MYSQL双主全库同步复制的更多相关文章

  1. Mysql 双主架构配置从复制

    引用自:https://blog.csdn.net/deeplearnings/article/details/78398526 https://www.cnblogs.com/ygqygq2/p/6 ...

  2. 分布式数据存储 - MySQL双主复制

    上篇文章<分布式数据存储 - MySQL主从复制>,我们说到MySQL主从复制很好的保障了从库,读的高可用性.so,问题来了: 1.针对主库,写的高可用性又是如何做到高可用性? 2.如果需 ...

  3. keepalived+mysql双主复制高可用方案

    MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.而Keepalived通过虚拟IP,实现了 ...

  4. MySQL双主复制

    原文发表于cu:2017-06-12 本文简单介绍MySQL双主复制原理及1个简单是双主复制验证. 一.MySQL双主复制原理 1. 双主复制原理 master-master复制的两台服务器,既是ma ...

  5. linux环境下配置mysql双主复制

    简单来说,双主复制就是让两台mysql服务器中的数据保持同步,可以用来实现灾备和负载均衡 主机1 IP:192.168.200.128 主机2 IP:192.168.200.131 两台主机系统均为c ...

  6. Mysql双主加Keepalived+读写分离

    一.MySQL于keepalived简介** 前言: 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要 ...

  7. MySQL双主(主主)架构方案

    在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mysql入 ...

  8. Keepalived+MySQL双主

    一.Keepalived+MySQL Replication的应用场景 MySQL的高可用方案有cluster,MMM,MHA等,这些高可用方案都要三台服务器以上,成本有点高,今天介绍一个低成本高可用 ...

  9. Mysql双主互备+keeplived高可用架构介绍

    一.Mysql双主互备+keeplived高可用架构介绍 Mysql主从复制架构可以在很大程度保证Mysql的高可用,在一主多从的架构中还可以利用读写分离将读操作分配到从库中,减轻主库压力.但是在这种 ...

随机推荐

  1. 【洛谷P1963】变换序列

    题目大意:对于一个顺序序列,求一个合法置换,可以满足一些约束,若存在多个合法置换,则输出字典序最小的一个置换. 题解:对于序列的置换是否有解的问题,可以和二分图的完美匹配相关联.由于是字典序最小,显然 ...

  2. BZOJ5261 Rhyme--广义SAM+拓扑排序

    原题链接,不是权限题 题目大意 有\(n\)个模板串,让你构造一个尽量长的串,使得这个串中任意一个长度为\(k\)的子串都是至少一个模板串的子串 题解 可以先看一下这道题 [POI2000]病毒 虽然 ...

  3. 【Network】优化问题——Label Smoothing

    滴:转载引用请注明哦[握爪]https://www.cnblogs.com/zyrb/p/9699168.html 今天来进行讨论深度学习中的一种优化方法Label smoothing Regular ...

  4. Jenkins_安装

    1.下载war包 wget -c -O ./jenkins.war http://mirrors.jenkins.io/war-stable/latest/jenkins.war 2.启动下载好的wa ...

  5. html的分类与特点

    ##块级元素##|元素|描述||--|--||h1-h6|标题||div|区分大模块||p|段落||ul>li|无序列表||ol>li|有序列表||dl>dt dd|自定义列表||t ...

  6. Aplcloud中 openFrame 和 openWin 的区别

    WIn 占满一屏,但不能设置大小, Frame 可以 一般情况 Frame 依附于win 之上,关了window 通过window打开的frame 也会关闭.

  7. jQuery mouse and lunbo

    自动轮播 和 鼠标事件var arr = ["images/d.jpg", "images/q.jpg", "images/c.jpg", ...

  8. 【转载】PyTorch系列 (二):pytorch数据读取

    原文:https://likewind.top/2019/02/01/Pytorch-dataprocess/ Pytorch系列: PyTorch系列(一) - PyTorch使用总览 PyTorc ...

  9. IDEA - Debug - not supported in -source 1.5

  10. Django --- Django下载和APP创建 ORM (大概步骤)

    1,下载: 命令行: pip install django == 1.11.15 pip install -i或 源 django == 1.11.15 pycharm settings 解释器 点 ...