MySQL9-主从复制与读写分离

目录

一、基本概念

二、如何在一台电脑上部署两个MySQL服务?

三、如何搭建主从服务器?

四、如何实现读写分离?

五、参考网页

一、基本概念

1、主从复制:数据库服务器由一台主服务器(Master)和一台或多台从服务器(Slave)组成;对于主服务器的所作的更改,会自动同步到从服务器。

2、主从复制的原理:主服务器所作更改的语句,会写到二进制文件里;从服务器执行二进制文件,实现数据同步。关于二进制文件的文件路径和开始执行的位置,配置主从服务器时会指定;并随着同步的进行自动更新。

3、通过主从复制,至少有以下几个好处:

(1)数据备份

(2)通过主从复制,可以实现读写分离。所谓读写分离,就是对数据库的写操作,是在主服务器实现;而读操作,则是在从服务器实现;通过读写分离,可以减轻服务器压力,提高并发负载,而且相比于多个服务器都能读与写,数据不一致问题更加容易避免。

4、注意事项

(1)从服务器的定时器都要是关闭的

(2)触发器呢?

二、如何在一台电脑上部署两个MySQL服务?【OS:win7;数据库:MySQL5.6】

1、第一个MySQL服务正常安装;跑通后停掉服务。

2、将安装后的MySQL整个文件夹拷贝到新的位置,我这里是C:\Program Files\MySQLSlave\

3、创建新的配置文件

(1)先找到第一个MySQL的配置文件

show variables like ‘%dir%‘可以找到所有有关路径的设置;其中datadir是数据相关的路径,其中也包括配置文件。

我的配置文件的路径是:C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

(2)将配置文件拷贝到新的路径,可以自己设定;比如我放在了C:\Program Files\MySQLSlave\MySQL Server 5.6\my.ini

(3)修改配置文件

port=3307 #port=3306改为3307,有两处需要修改

# basedir="C:/Program Files/MySQLSlave/MySQL Server 5.6/" #我这里貌似不需要改这个

datadir=C:\Program Files\MySQLSlave\MySQL Server 5.6\data

4、创建第二个MySQL服务

(1)在cmd中,cd进入C:\Program Files\MySQLSlave\MySQL Server 5.6\bin

(2)mysqld.exe install MySQLSlave  --defaults-file="C:\Program Files\MySQLSlave\MySQL Server 5.6\my.ini"

5、修改注册表:HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services中,将MySQLSlave的ImagePath修改成:

"C:\Program Files\MySQLSlave\MySQL Server 5.6\bin\mysqld" --defaults-file="C:\Program Files\MySQLSlave\MySQL Server 5.6\my.ini" MySQLSlave

6、启动服务并访问:启动服务后,便可以向访问第二个MySQL服务了,比如使用navicat;用户名和密码与第一个MySQL服务相同即可。

注意,此时两个MySQL服务没有什么关系,还需要进一步设置主从关系。

三、如何搭建主从服务器?

1、建立两个MySQL服务,如上所述。

2、修改主从配置文件

(1)主服务器

[mysqld]

server-id = 1

binlog-do-db=test-master #要同步的数据库

#binlog-ignore-db=mysql #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的

log-bin=mysql-bin #要生成的二进制日记文件名称

(2)从服务器

[mysqld]

server-id = 2

log-bin = mysql-bin

replicate-do-db = test-master

3、保持主从mysql的test数据库初始状态一致:一般是先将所有的表加读锁,然后copy磁盘上的数据库文件夹。我这里直接停止服务,然后将数据文件拷贝过去。

4、主服务器下运行show master status,记下file和position参数。

5、从服务器的配置

(1)设置master

change master to master_host=‘127.0.0.1‘,master_port=3306,master_user=‘root‘,master_password=‘1111‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=107;

其中master_log_file和master_log_pos从步骤4得来。

(2)启动:老版本是slave start,现在是start slave,一定注意

start slave

(3)查看状态:Slave_IO_Running与Slave_SQL_Running的值都必须为YES,才表明状态正常。

show slave status

6、此时,便已经设置成功了主从复制;修改主服务器,观察从服务器的变化

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

`id` int(100) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(100) DEFAULT NULL,

`time1` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

`age` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

INSERT INTO `user` VALUES (‘1‘, ‘lixiaolong‘, ‘2016-01-25 17:25:24‘, ‘2‘);

四、如何实现读写分离?

可以通过MySQL Proxy方便的实现读写分离,具体实现方式略。

五、参考网页

http://www.cnblogs.com/yuechaotian/archive/2013/05/15/3079919.html【[z]如何在一台windows主机上安装多个mysql服务】

http://www.cnblogs.com/yuechaotian/archive/2013/05/15/3080056.html【[z]如何在一台windows主机上搭建mysql主从复制】

时间: 2024-10-06 02:19:35

MySQL9-主从复制与读写分离的相关文章

mysql主从复制与读写分离

MySQL主从复制与读写分离 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面. 因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部

MySQL主从复制、读写分离、高可用集群搭建

MySQL主从复制.读写分离.高可用集群搭建  一.服务介绍   1.1 Keepalived     Keepalived,见名知意,即保持存活,其目的是解决单点故障,当一台服务器宕机或者故障时自动切换到其他的服务器中.Keepalived是基于VRRP协议实现的.VRRP协议是用于实现路由器冗余的协议,VRRP协议将两台或多台路由器设备虚拟成虚拟设备,可以对外提供虚拟路由器IP(一个或多个),即漂移IP(VIP). 1.2 ProxySQL ProxySQL是一个高性能,高可用性的MySQL

MySQL之主从复制和读写分离(Amoeba)

案例环境: Master:192.168.154.164 Slave01:192.168.154.176 Slave02:192.168.154.156 Amoeba:192.168.154.177 应用服务器:192.168.154.155 集群拓朴: 部署实施: 一 操作系统和应用程序安装(略) 二 搭建MySQL主从复制环境 1 架构前端有硬件防火墙,因此所有服务器的iptables处于关闭状态(如果没有,请开放相应的端口) [[email protected] ~]#service ip

MySQL 复制过滤器、监控维护及主从复制的读写分离

MySQL 复制过滤器.监控维护及基于SSL的主从复制 =============================================================================== 概述: 本章将主要介绍MySQL复制中如何过滤,监控维护,以及基于SSL的主从复制,具体内容如下: MySQL 复制过滤器 ·从服务器库级别过滤 MySQL 清理日志:PURGE 复制监控 ·Master ·Slave 如何确定主从节点的数据是否一致 MySQL基于SSL的主从复制(

基于Mysql-Proxy实现Mysql的主从复制以及读写分离(上)

基于Mysql-Proxy实现Mysql的主从复制以及读写分离(上) 上周BOSS给分配任务让实现一下Mysql数据库的主从复制以及读写分离,然后花了一盏茶的功夫进行了调研,发现主从复制数据库进行一番配置直接可以实现,而读写分离则需要一些软件的支持,基本上读写分离的实现有两种: Amoeba(变形虫):是由前阿里员工实现的一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy.但是由于没人维护了,而且据说作者也不再回答开发者的问题,所以不予考虑. Mysql-Proxy:是一

mysql主从复制以及读写分离

mysql的主从复制以及读写分离 前言:我们前面搭建过LAMP和LNMP,做过了web服务器群集和热备,web服务器坏了我们是不怕了,但是我们要知道,网站的数据有很多是存储在数据库里面的,例如注册的会员,发的文章,购物的订单等信息.当然我们可以给数据库做备份,但是如果每天00:00做一次备份,那么如果在23:59数据丢失了,那么就会丢失一天的数据,有没有一种方法能实现实时备份,就是说有数据产生就立即备份,答案当然是有,也就是今天我们要学习的mysql主从复制.有点类似于前面我们学习过的rsync

Mysql 主从复制,读写分离

Mysql 主从复制及读写分离 特别推荐看:amoeba.xml 的配置部分,在百度上看了很多配置都不完整,是我测试时的痛点 实验的目的: 有两部分:第一实现Mysql主从复制,第二实现读写分离. 下面是实验的环境: 192.168.58.11     安装了amoeba 的节点 192.168.58.16      master    系统:rhel 5.4 192.168.58.12      slave     系统: rhel 5.4 192.168.58.11      代理     

搭建mysql的主从复制和读写分离

搭建mysql的主从复制和读写分离   +--------+                          (write)        +--------+                    | client |                 +---------------------+| master |     +--------+|                   |                        +--------+|           |      

MySQL的主从复制与读写分离技术实例(一)主从复制

系统版本:CentOS 6.5   MySQL版本:mysql-5.5.38 生产环境下,如果对同一个数据库服务器即做写服务又做读服务,无论是从安全性.高可用性还是高并发等各个角度都不能满足实际需求,因此,一般都用多台数据库服务器通过主从复制来同步数据提高安全性,再通过读写分离来提升数据库的并发负载能力,以及高可用性. 案例拓扑图: 案例环境: 搭建MySQL主从复制 MySQL的主从复制与读写分离密不可分,只有在实现主从复制的前提下才能完成读写分离 一.建立时间同步环境 1.在Master(M

redis的主从复制,读写分离,主从切换

当数据量变得庞大的时候,读写分离还是很有必要的.同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能. redis提供了一个master,多个slave的服务. 准备三个redis服务,依次命名文件夹子master,slave1,slave2.这里为在测试机上,不干扰原来的redis服务,我们master使用6000端口. 配置文件(redis.conf) master配置修改端口: port 6000 requirepass 123456