mysql双主配置及其注意事项

mysql双主配置及其注意事项

主库配置

[mysqld]
server-id       = 1
log-bin=mysql1-bin
#salve-net-timeout默认是3600秒,缩短时间是为了防止双YES的假象
slave-net-timeout=60
auto_increment_offset=2
auto_increment_increment=2
如果要指定同步或不同步哪些库,可使用如下参数
#binlog-do-db=osyunweidb   #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
#binlog-ignore-db=mysql    #不同步mysql系统数据库

从库配置

[mysqld]
server-id       = 2
log-bin=mysql2-bin
#salve-net-timeout默认是3600秒,缩短时间是为了防止双YES的假象
slave-net-timeout=60
auto_increment_offset=1
auto_increment_increment=2

主键冲突

多主和主从有一点区别:因为在多主中都有对服务器有写的权限,所以会造成主键冲突。从而导致同步失败。所以需要保证自增长的数据不同。使用auto_increment_offsetauto_increment_increment来解决。

auto_increment_offset
auto_increment_increment

这两个参数的作用:

  • 控制自增列auto_incremnet的行为
  • 用于master_master之间的复制,防止出现重复值

auto_increment_increment:自增值的自增量

auto_increment_offset: 自增值的偏移量

一般设置:

auto_increment_offset=1 偏移量从开始,依次增加

auto_increment_offset=N 有几台主服务器,就设置为N,这样就可以保证他们之间的主键不冲突。

主从同步故障解决办法:

  1. 适用于数据相差不大。要求不严格的情况。

在主库上锁表 flush tables with read lock

在从库上执行:

stop slave;
#跳过错误的步骤,可以改变后面的数字,实现多次跳转
set  global sql_slave_skip_counter =1;
start slave;
show slave status\G;
解锁表 unlock tables;

2.重做,实现完全同步。适用于要求数据完全统一的情况下:

1. 在主库上锁表
2.进行主库数据备份
3.查看master的状态
4.将备份文件拷贝到从库
######################
5.停止从库的状态
6.导入备份的数据库
7.设置主从同步
8.开启从同步
9.查看同步的状态
10.在master上解锁

不同版本做主从报错问题:

配置:

    master1 mysql:5.6
    master2 mysql: 5.5
  1. 在master1做slave,master2做主数据看时成功
  2. 在master1做master,master2做从数据库时报错
     Got fatal error 1236 from master when reading data from binary log:
    ‘Slave can not handle replication events with the checksum that master is configured to log;
    the first event ‘mysql-bin.000001‘ at 5115510, the last event read from ‘./mysql-bin.000001‘ at 5115510,
    the last byte read from ‘./mysql-bin.000001‘ at 120.‘

查询资料发现当mysql版本为5.6时:
这个错误一般出现在master5.6,slave在低版本的情况下。这是由于5.6使用了crc32做binlog的checksum;当一个event被写入binary log(二进制日志)的时候,checksum也同时写入binary log,然后event通过网络传输到从服务器(slave)之后,再在从服务器中对其进行验证并写入从服务器的relay log。

由于每一步都记录了event和checksum,所以看报错就知道是无法checksum。
解决: 在master1配置文件中设置binlog_checksum =none;重启,然后重新进行连接就好了。

原文地址:http://blog.51cto.com/dianel/2092172

时间: 2024-11-05 23:37:30

mysql双主配置及其注意事项的相关文章

MySQL双主配置

MySQL双主配置 准备环境:服务器操作系统为RHEL6.4 x86_64,为最小化安装.主机A和主机B均关闭防火墙和SELINUX ,IP地址分别为192.168.131.129和192.168.131.130,MySQL版本为5.6.26,为通用二进制包. 安装MySQL 1.主机A操作 # tar xf mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz # mv mysql-5.6.26-linux-glibc2.5-x86_64 /usr/local/m

MySQL双主.md

MySQL 双主配置 环境说明 系统 IP 主机名 mysql版本 CentOS 6.8 192.168.197.61 C6-node1 5.6.36 CentOS 6.8 192.168.197.62 C6-node2 5.6.36 MySQL安装这里不做介绍,下面是其配置文件.这里测试使用的是没有数据的纯净数据库. node1节点配置 配置文件 [mysqld] datadir=/data/mysql port=3306 socket=/tmp/mysql.sock pid=/data/my

MySQL Replication, 主从和双主配置

MySQL Replication, 主从和双主配置 MySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场合.与之对应的另一个技术是同步的MySQL Cluster,但因为比较复杂,使用者较少.   下图是MySQL官方给出了使用Replication的场景: Replication原理   Mysql 的 Replication 是一个异步的复制过程,从一个MySQL节点(称之为Master)复制到另

MySQL双主多从+Keepalived配置

目录 一 基础环境 二 实际部署 2.1 MySQL双主+Keepalived高可用 2.2 所有Slave节点配置配置 2.3 所有Slave节点创建账号 2.4 Slave节点配置Master01为主 一 基础环境 主机名 系统版本 MySQL版本 主机IP Master01 CentOS 6.8 MySQL 5.6 172.24.8.10 Master02 CentOS 6.8 MySQL 5.6 172.24.8.11 VIP 172.24.8.12 Slave01 CentOS 6.8

MySQL双主+keepalived实现高可用

mysql+keepalived实现高可用+主主复制模式 为了解决mysql的单点故障问题,衍生出很多mysql的高可用方案: keepalived+双主.MHA.PXC.MMM.Hearbeat+DRBD等,比较常用的一般是keepalived+双主,MHA和PXC 在此搭建实验环境,实现keepalived+mysql双主模式. 实验思路: 两台MySQL互为主从关系(双主),通过keepalived配置虚拟vip,实现当其中的一台MySQL数据库宕机后,应用能自动切换到另外一台MySQL数

​Keepalive实现mysql双主热备

Keepalive实现mysql双主热备 环境描述: OS: CentoOS6.6_X64 Node1:172.16.10.1 Node2:172.16.10.2 VIP:172.16.10.10 1.配置主机互信 Node1: [[email protected]~]# ifconfig eth0 eth0      Link encap:Ethernet  HWaddr 00:0C:29:11:21:56            inet addr:172.16.100.1  Bcast:17

MySQL双主(主主)架构方案

在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mysql入口,增加高可用.不过多主需要考虑自增长ID问题,这个需要特别设置配置文件,比如双主,可以使用奇偶,总之,主之间设置自增长ID相互不冲突就能完美解决自增长ID冲突问题. 主从同步复制原理 在开始之前,我们先来了解主从同步复制原理. 复制分成三步: 1. master将改变记录到二进制日志(binary

keepalived+mysql双主

       mysql高可用keepalived+mysql双主 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC. 本节主要介绍了利用 keepalived 实现 MySQL 数据库的高可用. Keepalived+mysql双主来实现MySQL-HA,我们必须保证两台MySQL数据库的数据完全一样,基本思路是两台MySQL互为主从关系,通过Keepalived配

HAproxy负载均衡MYSQL双主

OS IP 子网掩码 路由网关 Centos6.6 (DB:MYSQL) Eth0:192.168.26.211 255.255.252.0 192.168.25.3 Centos6.6 (DB:MYSQL) Eth0:192.168.26.212 255.255.252.0 192.168.25.3 Centos6.6 (HAproxy) Eth0:192.168.26.210 255.255.252.0 192.168.25.3 安装mysql:192.168.26.211 Yum inst