使用Spring+MySql实现读写分离(三)主从复制

mysql  主(master)    从(slave)    复制的原理:

1、 master将数据改变记录到二进制日志(binary log)中,也即是配置文件log-bin指定的文件(这些记录叫做二进制日志事件,binary log events)

2、 slave将master的binary log events拷贝到它的中继日志(relay log)

3、 slave重做中继日志中的事件,将改变反映它自己的数据(数据重演)

注意:主从复制的时间差不可解决

1.1. 主从配置需要注意的地方

1、 主DB server和从DB server数据库的版本一致

2、 主DB server和从DB server数据库数据一致[ 这里就会可以把主的备份在从上还原,也可以直接将主的数据目录拷贝到从的相应数据目录]

3、 主DB server开启二进制日志,主DB server和从DB server的server_id都必须唯一

1.2.

1 导出3306数据库的数据

2 分别在3380和3381中创建数据库

3 分别导入sql文件

主DB server 3380开启二进制日志

主写日志   从不写日志

将3381的注释掉

server_id都必须唯一

2.1. 主库配置(windows,Linux下也类似

在my.ini修改:

#开启主从复制,主库的配置

log-bin="E:/0315/mysql/3380/logs/mysql-bin"

#指定主库serverid

server-id=80

#指定同步的数据库,如果不指定则同步全部数据库

binlog-do-db=数据库名称

执行SQL语句查询状态:
SHOW MASTER STATUS

授权之后位置变化为420

需要记录下Position值,需要在从库中设置同步起始值。

3.1. 在主库创建同步用户

#授权用户slave01使用123456密码登录mysql

grant replication slave on *.* to ‘slave01‘@‘127.0.0.1‘ identified by ‘123456‘;

flush privileges;

4.1. 从库配置

在my.ini修改:

#指定serverid,只要不重复即可,从库也只有这一个配置,其他都在SQL语句中操作

server-id=81

以下执行SQL:

CHANGE MASTER TO

 master_host=‘127.0.0.1‘,

 master_user=‘slave01‘,

 master_password=‘123456‘,

 master_port=3306,

 master_log_file=‘mysql3306-bin.000006‘,

 master_log_pos=1120;

#启动slave同步

START SLAVE;

 

#查看同步状态

SHOW SLAVE STATUS;

Io是 no   需要看日志

从库 复制 主库   先看自己的3381的日志err.log

例如  修改80的数据库数据   修改后  81会同步  数据随之改变

时间: 2024-10-04 17:11:37

使用Spring+MySql实现读写分离(三)主从复制的相关文章

使用Spring+MySql实现读写分离(二)spring整合多数据库

紧接着上一章,因为现在做的项目还是以spring为主要的容器管理框架,所以写以下spring如何整合多个数据源. 1. 背景 我们一般应用对数据库而言都是"读多写少",也就说对数据库读取数据的压力比较大,有一个思路就是说采用数据库集群的方案, 其中一个是主库,负责写入数据,我们称之为:写库: 其它都是从库,负责读取数据,我们称之为:读库: 那么,对我们的要求是: 1. 读库和写库的数据一致: 2. 写数据必须写到写库: 3. 读数据必须到读库: 2. 方案 解决读写分离的方案有两种:应

使用Spring+MySql实现读写分离(一)关于windows下安装mysql5.6

前面讲过关于mysql的优化,主要是建表时对于大量数据的表添加索引机制,提高查询效率,以及一些sql语句的简单优化,毕竟我也不是专业的数据库管理员,大牛勿喷. 今天写两章关于javaweb项目中,对于数据库的优化,主要目的是减少数据库的访问压力和读写压力. 因为平时工作都是在windows上开发,所以讲解下windows下安装mysql5.6 1. 下载 http://dev.mysql.com/downloads/windows/installer/5.6.html 2. 安装 我们采用自定义

如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?

高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少.所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗? 如何实现 MySQL 的读写分离? 其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去. MySQL 主从复制原理的是啥? 主库将变更写入 binlog 日志,然后从库连接到主库之后,

MySQL的读写分离的几种选择

MySQL的读写分离的几种选择 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 原址如下: http://heylinux.com/archives/1004.html Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面. 因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步

全文索引Sphinx+binlog日志+Grant用户授权+读写分离和主从复制

一.全文索引Sphinx 1.什么是Sphinx Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.它是基于C语言开发出来的.中文翻译为斯芬克司斯芬克司. Sphinx最好的应用操作系统是Linux 2.Sphinx的优势 Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索.Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Pytho

读写分离及主从复制

一.主从复制要求: a) 至少有两个服务器 b) 分别设置主服务器和从服务器 c) 对主服务器有任何操作都会同步到从服务器上 二.实现原理: a) MySQL中有一个日志bin日志(也叫二进制日志),此日志记录了所有操作数据库的的sql语句 b) 主从复制原理实际上是多台服务器都开启了bin日志,然后主服务器会把执行过的sql语句记录到bin日志中,之后从服务器读取此bin日志,把该日志内容保存到自己日志中去,从服务器并将记录的sql语句执行一遍,这样主服务器与从服务器的数据就同步了. c) 实

使用mysql-proxy实现mysql的读写分离

 前言: MySQL读写分离是指让master处理写操作,让slave处理读操作,非常适用于读操作量比较大的场景,可减轻master的压力.使用mysql-proxy实现mysql的读写分离,mysql-proxy实际上是作为后端mysql主从服务器的代理,它直接接受客户端的请求,对SQL语句进行分析,判断出是读操作还是写操作,然后分发至对应的mysql服务器上.mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等MySQL Proxy就是这么一个

mysql+mysql_proxy+haproxy+memcache (mysql的读写分离)

参考: http://www.cnblogs.com/xxcn/p/4385412.html http://blog.jobbole.com/94606/ http://www.open-open.com/lib/view/open1413274853450.html 原理:略(下次再写)图片来自:http://www.open-open.com/lib/view/open1413274853450.html 架构: master: 192.168.2.127 slave: 192.168.2.

使用Amoeba 实现MySQL DB 读写分离

Amoeba(变形虫)项目是一个开源框架,于2008年开始发布一款 Amoeba for Mysql软件: 这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发:位于 Client.DB Server(s)之间,对客户端透明: =================================================================== 1 简介 2 准备 2.