mysql主从配置主主配置

一、     概述

  MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步、主从模式、互相备份模式的功能。本文档主要阐述了如何在linux系统中利用mysql的replication进行双机热备的配置。

二、     环境

操作系统:ubuntu 14.04

Mysql版本:5.6.14

设备环境:PC(或者虚拟机)两台

三、     配置

数据库同步复制功能的设置都在MySQL的配置文件中体现,MySQL的配置文件(一般是my.cnf):在本环境下为/etc/my.cnf 。

设置环境:

IP 的设置:

A主机 IP:10.10.0.119

Mask:255.255.0.0

B主机 IP:10.10.8.112

Mask:255.255.0.0

在IP设置完成以后,需要确定两主机的防火墙确实已经关闭。可以使用命令service iptables status 查看防火墙状态。如果防火墙状态为仍在运行。使用service iptables stop 来停用防火墙。如果想启动关闭防火墙,可以使用setup命令来禁用或定制。

最终以两台主机可以相互ping通为佳。

配置A主(master) B从(slave)模式

配置A为master

增加一个同步账号使用

GRANT FILE ON *.* TO ‘signal‘ @‘slaveip‘ IDENTIFIED BY ‘youpassword‘;

GRANT REPLICATION SLAVE ON *.* TO ‘signal‘@‘slaveip‘ IDENTIFIED BY ‘youpassword‘;

FLUSH PRIVILEGES;

修改A的/etc/my.cnf 文件,在my.cnf 配置项中加入下面配置:

server-id = 1      #Server 标识

log-bin

binlog-do-db=test  #指定需要日志的数据库

重启数据库

service mysqld restart

查看 serverid

show variable like ‘server_id‘;

实例:

mysql> show variables like ‘server_id‘;

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| server_id     | 1     |

+---------------+-------+

1 row in set (0.00 sec)

查看主数据库状态

show master status\G

正常为:

mysql> show master status/G

*************************** 1. row ***************************

File: mysqld-bin.000002

Position: 198

Binlog_Do_DB: test,test

Binlog_Ignore_DB:

1 row in set (0.08 sec)

配置B为slave

修改配置文件:

修改B的/etc/my.cnf 文件,在my.cnf 配置项中加入下面配置:

server-id=2

replicate-do-db=test    #告诉slave只做backup数据库的更新

Mysql版本从5.1.7以后开始就不支持“master-host”类似的参数

执行

change master to master_host=‘masterIP‘, master_user=‘signal‘, master_password=‘youslvaePASS‘;

若端口不是3306 需要加上端口master_port=xxx

重起数据库服务:

service mysqld restart

查看server-id:

show variables like ‘server_id’;

实例:

mysql> show variables like ‘server_id‘;

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| server_id     | 2     |

+---------------+-------+

1 row in set (0.00 sec)

用show slave status/G 命令看日志情况。

正常为:

mysql> show slave status/G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: masterIP

Master_User: signal

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysqld-bin.000001

Read_Master_Log_Pos: 98

Relay_Log_File: mysqld-relay-bin.000003

Relay_Log_Pos: 236

Relay_Master_Log_File: mysqld-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB: test,test

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 98

Relay_Log_Space: 236

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

1 row in set (0.01 sec)

验证配置

分别使用insert, delete , update 在A 主机进行增删改查数据库;查看B主机的数据库是否与A主机一致;若一致,则配置成功。

双机互备(主主同步)

在A主机加入slave设置,在B主机加入master设置,则可以做B->A的同步。

常见问题及解决

1、Slave机器的权限问题,不但要给slave机器File权限,还要给它REPLICATION SLAVE的权限。

2、在修改完Slave机器/etc/my.cnf之后,slave机器的mysql服务启动之前,记得要删除掉master.info

3、在show master status 或着show slave status 不正常时,看看.err是怎样说的。

4、Slave上Mysql的Replication工作有两个线程, I/O thread和SQL thread 。I/O 的作用是从master 3306端口上把它的binlog取过来(master在被修改了任何内容之后,就会把修改了什么写到自己的binlog等待slave更新),然后写到本地的relay-log,而SQL thread则是去读本地的relay-log,再把它转换成本Mysql所能理解的语句,于是同步就这样一步一步的完成.决定I/O thread的是/var/lib/mysql/master.info,而决定SQL thread的是/var/lib/mysql/relay-log.info.

5、启动slave,命令用start slave;重新启动用restart slave

若遇到

Slave_IO_Running: Yes(no)

Slave_SQL_Running: No(no)

方法1:

停止salve

stop slave;

#表示跳过一步错误,后面的数字可变

set global sql_slave_skip_counter =1;

start slave;

再用 show slave status\G  #查看状态

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

都为yes时正常

方法2:在mysql配置文件中加入 slave-skip-errors=1062,1053,1146  跳过错误

方法3: 重做主从同步

参考 http://blog.csdn.net/nuanchun666/article/details/2069301

原文地址:https://www.cnblogs.com/liferr/p/8341411.html

时间: 2024-10-25 04:55:40

mysql主从配置主主配置的相关文章

MySQL主从同步(复制)的配置

1.主从复制的原理: *Master,记录数据更改操作 - 启用binlog记录模式 - 允许Slave读取binlog日志 *Slave运行2个同步线程 - Slave_IO:负责连接Master,复制其binlog日志文件到本机的relay-log文件 - Slave_SQL:执行本机relay-log文件里的SQL语句,重现Master的数据操作 2.基本构建思路: 1)初始化现有库:将主库导入从库,确保数据一致性 2)配置Master,主服务器:调整运行参数,授权一个同步用户 3)配置S

基于MYCAT的MYSQL主从与读写分离配置详解与示例

1.不使用Mycat托管MySQL主从服务器,简单使用如下配置:          <dataNodename="dn1" dataHost="localhost1" database="db1"/>          <dataNodename="dn2" dataHost="localhost1" database="db2"/>          <d

MySQL主从(介绍,配置主机,配置从机,测试主从同步)

一.介绍及准备工作 1.介绍 MySQL主从配置又叫Replication或者AB复制,简单讲就是A和B两台机器做主从后,在A上写数据,另一台B也会跟着写数据,两台数据实时同步. MySQL主从是基于binlog的,主上须开启binlog才能进行主从. 主从过程大致有3个步骤 主将更改操作记录到Binlog里 从将主的Binlog事件(sql语句)同步到从本机上并记录在relaylog里 从根据relaylog里面的sql语句按顺序执行 主上有一个logdump线程,用来和从的i/o线程传递bi

Mysql主从原理和复制配置详细讲解

如果配置了多个从服务器或者多个主服务器又涉及到相应的负载均衡问题,关于负载均衡具体的技术细节还没有研究过,今天就先简单的实现一主一从的主从复制功能 将主数据库中的DDL和DML操作通过二进制日志(BINLOG)传输到从数据库上,然后将这些日志重新执行(重做):从而使得从数据库的数据与主数据库保持一致. 1.主数据库出现问题,可以切换到从数据库. 2.可以进行数据库层面的读写分离, 3.可以在从数据库上进行日常备份 Binary log:主数据库的二进制日志 Relay log:从服务器的中继日志

Linux服务篇之七:MySQL主从原理及架构配置

Linux服务篇之七:MySQL引擎了解.主从原理及架构配置 一.MySQL引擎了解 MyISAM引擎 默认表类型,它是基于传统的ISAM类型,ISAM是IndexedSequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.不是事务安全的,而且不支持外键,如果执行大量的select, MyISAM比较适合. InnoDB引擎 支持事务安全的引擎,支持外键.行锁.事务是他的最大特点.Innodb最初是由innobase Oy公司开发,200

Mysql主从同步原理及配置-Linux

从库的io线程会实时依据master.info信息的去主库的binlog日志里面读取更新的内容,将更新的内容取回到自己的中继日志中,同时会更新master.info信息,此时sql线程实时会从中继日志中读取并执行里面的sql语句 Master :记录数据更改操作 – 启用 binlog 日志 – 设置 binlog 日志格式 – 设置 server_id Slave 运行 2 个线程 – Slave_IO :复制 master 主机 binlog 日志文件里的 SQL 到本机的 relay-lo

MySQL主从同步与主主同步

MySQL复制: MySQL内建的复制功能是构建大型,高性能应用程序的基础.将MySQL的数据分布到多个系统上去,这种分布的机制,是通过将mysql的某一台主机的数据复制到其它主机(slave)上,并重新执行一遍来实现. 复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循坏,这些日志可以记录发送到从服务器的更新.当一个从服务器 连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器

Centos7配置mysql主从:一主多从

mysql主从复制原理1.首先master将数据更新记录到二进制binlog文件2.slave通过I/O线程向master请求binlog日志文件指定位置之后的内容3.master接收到slave的io请求之后,就会从binlog相应的位置点开始,给slave传日志4.slave接收到日志后,会写入本地的relay log中继日志中5.slave通过sql线程读取中继日志的内容,在数据库中执行相应的操作,到此为止,master和slave上的数据一致,之后slave服务器进入等待状态,等待mas

Linux下MySQL主从同步复制详细配置

注:主服务器:192.168.100.245      从服务器:192.168.100.246 一.检查系统是否安装MySQL服务 1.1 rpm -qa |grep -i mysql 二.安装MySQL服务器 2.1 rpm -ivh MySQL-server-5.5.16-1.rhel4.i386.rpm MySQL-client-5.5.16-1.rhel4.i386.rpm MySQL-devel-5.5.16-1.rhel4.i386.rpm 三.启动MySQL服务 3.1 serv

MySQL(三):MHA实现MySQL主从架构中主服务器的高可用,zabbix完成manager重启

MHA(Master High Availability)是目前在MySQL高可用方面相对成熟的一个解决方案,MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过于其它从节点获取额外信息来避免一致性方面的问题.MHA还提供了master节点的在线切换功能. MHA 服务有两种角色,MHA Manager(管理节点)和 MHA Node(数据节点): MHA Manager:通常单独部署在一台独立机器上管理多个 master/