MySQL的主从复制介绍及配置

1.MySQL主从复制介绍

MySQL数据库支持单向、双向、链式级联、环状等不同业务场景的复制。在复制过程中,一台服务器充当主服务器(Master),接收来自用户的内容更新,而一个或多个其他的服务器充当从服务器(Slave),接收来自主服务器binlog文件的日志内容,解析出SQL,重新更新到从数据库,使得主从服务器的数据达到一致。

如果设置了链式级联复制,那么从服务器本身除了充当从服务器外,也会同时充当其下面从服务器的主服务器,链式级联复制类似A—>B—>C的复制形式。在这里,只介绍主—>从形式的配置方案。至于互为主从,链式级联的以后有机会再讨论。

MySQL的主从复制的主要场景有以下几个:

1)从服务器作为主服务器的实时数据备份

2)主从服务器实现读写分离(主写从读),从服务器实现负载均衡

3)把多个从服务器根据业务重要性进行拆分访问(从服务器根据业务进行拆分)

2.MySQL主从复制原理介绍

MySQL的主从复制是一个异步的复制过程(一般情况下感觉是实时的),数据将从一个MySQL数据库(Master)复制到另外一个MySQL数据库(Slave),在Master与Slave之间实现整个主从复制的过程是由三个线程参与完成的。其中有两个线程(SQL线程和I/O线程)在Slave端,另外一个线程(I/O线程)在Master端。

要实现MySQL的主从复制,首先必须打开Master端的binlog记录功能,否则就无法实现。因为整个复制过程实际上就是Slave端从Master端获取binlog日志,然后再在Slave上以相同的顺序执行获取的binlog日志中所记录的各种SQL操作。

要打开MySQL的binlog记录功能,可以通过在MySQL的配置文件my.cnf中的mysqld模块([mysqld]标识后的参数部分)增加"log-bin"参数来实现。

3.配置MySQL主从复制

本次实验的主从复制有单向的主从复制,一个Master和一个Slave。两个MySQL服务器都按照之前的方法搭建好了,并且也都开放了对应的端口。

(1)在主库Master的配置,用vim 打开 /etc/my.cnf文件,添加server_id和log-bin参数

[mysqld]
server_id = 52            #不能和从数据库的一样
log-bin = /usr/local/mysql/data/mysql-bin

保存退出之后重启数据库

/etc/init.d/mysqld restart

(2)登陆主数据库,检查参数的情况,看到log-bin已经打开。

(3)在主库上建立用于主从复制的账号,检查账号建立成功。

grant replication slave on *.* to 'rep'@'192.168.31.%' identified by 'pcm123456';
flush privileges;

(4)主库上锁表,然后备份数据库

flush table with read lock;

锁表后查看主库状态,需要记录在案,待会复制主库就是从这个位置开始的。

新开一个窗口,用mysqldump进行数据的备份,然后传输到从库上。

mkdir -p /server/backup    #创建保存备份文件的文件夹
mysqldump -uroot -p 'pcm123456' --events -A -B |gzip >/server/backup/mysql_bak.$(date +%F).sql.gz  #备份并压缩
scp /server/backup/mysql_bak.2018-04-04.sql.gz [email protected]:/root/        #用scp复制到从库上

备份结束后,解锁主库,恢复读写

(5)从库上操作,设置server-id并关闭binlog功能。

从库上的server-id不能和主库的serverid一致,这里我们设置主库的server-id为53,binlog的功能默认关闭的。

用vim编辑之后保存退出,然后重启数据库。

/etc/init.d/mysqld restart

登陆mysql检查这两个参数,确认无误

(6)从库上操作,恢复主库导出的数据库到从库上

mysql -uroot -p  <mysql_bak.2018-04-04.sql

(7)从库上操作,配置复制参数。

CHANGE MASTER TO
MASTER_HOST='192.168.31.52',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='pcm123456',
MASTER_LOG_FILE='mysql-bin.000009',
MASTER_LOG_POS=120;

这个操作实际上就是把用户、密码以及主库的其他信息写入到从库的master.info文件去

(8)从库上开启同步开关,测试主从复制配置情况

查看slave的状态,注意查看slave的进程状态,主库复制的延迟秒数

到这里,MySQL的主从配置基本完成了。下面我们在主库上增加一个数据库pcm_test,看看从库会不会一起更新。证实了。

原文地址:http://blog.51cto.com/superpcm/2094958

时间: 2024-10-10 16:44:53

MySQL的主从复制介绍及配置的相关文章

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

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

MySQL多实例介绍及配置

在之前的一篇文章中,已经有介绍到怎么安装和配置MySQl了(http://blog.51cto.com/superpcm/2092357).接下来,MySQL中多实例的配置. 1.什么是MySQL多实例 简单来说,MySQL多实例就是在一台服务器上同时开启多个不同服务端口,同时运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的服务器端口来提供服务.这些MySQL多实例共用一套MySQL安装程序,使用不同的my.cnf(也可以相同)配置文件,启动程序 (也可以相同)和数据文件

MySQL的主从介绍、配置主、配置从、测试主从同步

MySQL的主从介绍 配置主 配置从 测试主从同步 主从配置的常见故障 1.网络原因:查看网络是否正常,SELinux是否关闭,iptables是否关闭2.账号密码不对:粗心大意,用户名与密码输错3.POS值不对:show maste status:4.克隆机器以及复制mysql都会出现UUID的问题,更改UUID即可 原文地址:http://blog.51cto.com/13515599/2095025

MySQL多实例介绍与配置

MySQL多实例: 就是在一台机器上开户多个不同的服务端口(如:3306,3307),运行多个 MySQL服务进程,这些服务进程通过不同的socket监听不同的服务端口来 提供各自的服务. MySQL多实例共用一套MySQL安装程序,使用不同的配置文件.启动程序. 数据文件.在提供服务时,多实例MySQL在逻辑上看来是各自独立的,多个 实例的自身是根据配置文件对应的设定值,来取得服务器的相关硬件资源多少.

MySQL主从复制介绍

1.1 MySQL主从复制原理介绍 MySQL的主从复制是一个异步的复制过程(虽然一般情况下感觉是实时的),数据将从一个MySQL数据库(我们称之为Master)复制到另一个MySQL数据库(我们称之为Slave),在Master与Slave之间实现整个主从复制的过程是由三个线程参与完成的,其中有两个线程(SQL线程和IO线程)在Slave端,另外一个线程(I/O线程)在Master端. 要实现MySQL的主从复制,首先必须打开Master端的binlog记录功能,否则就无法实现.因为整个复制过

Mysql中主从复制的原理、配置过程以及实际案例

Mysql中主从复制的原理.配置过程以及实际案例1.什么是主从复制?原理:主从分离,什么意思呢?我们不妨画个图看看.如图1所示: 2.准备工作:预备两台服务器,我这里使用虚拟机安装了两个Centos6.7_64位操作系统,并分别在两台服务器上安装mysql.我的IP地址分别为:192.168.1.15/192.168.1.16,这里我定义15为主服务器,16为从服务器.首先,我们编辑主服务器中mysql配置文件.(因我的mysql使用非root用户安装,因此配置文件放在/home/formal/

mysql主从复制概述以及配置mysql5.7.10实现简单主从复制

什么是主从复制: 通过将Mysql的某一台主机的 数据复制到其它主机,复制过程中一个服务器充当主服务器(master),而一个或多个其它服务器充当从服务器(slave).进行复制时,所有对数据表的写操作必须在主服务器上进行.否则,因为主服务器不会同步从服务器的数据,会导致主从数据不一致的问题.mysql的主从复制功能是构建高性能大型应用服务器的基础 主从复制的作用: 1.辅助实现数据的备份 2.实现数据服务的高可用和异地容灾 3.实现多个服务器分摊负载 主从复制的实现原理: 实现整个复制过程主要

配置MySQL GTID 主从复制

GTID是一个基于原始mysql服务器生成的一个已经被成功执行的全局事务ID,它由服务器ID以及事务ID组合而成.这个全局事务ID不仅仅在原始服务器器上唯一,在所有存在主从关系 的mysql服务器上也是唯一的.正是因为这样一个特性使得mysql的主从复制变得更加简单,以及数据库一致性更可靠.本文主要描述了快速配置一个基于GTID的主从复制架构,供大家参考. 一.GTID的概念 1.全局事务标识:global transaction identifiers.2.GTID是一个事务一一对应,并且全局

mysql主从介绍、 配置主、配置从

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