主从分离的原则:所有的写操作在主数据库中进行,因为主从分离的原理是涉及到同步数据,那就可能会出现延迟或者其他问题,就可能会出现脏数据。

所以,在从库中进行的读操作也必须是有一定容忍性的数据,例如日志等。

例如需要注意,如果一个业务中有读和写的操作。

那么这个操作的库必须是主库,因为这个涉及到事务,需要非常小心。

主从同步的原理:

从数据库后台线程请求主数据库的更新数据,主数据库后台线程接收到请求后会读取bin-log文件内容,然后放到从库的请求响应中。

从库接收到响应后,会将接收到的内容放到relay-log文件中,然后读取这个文件中同步过来的sql,然后在执行一遍。

好了,下面先新增一个从数据库:

    1,复制一个已经安装好的mysql就好
2,修改新mysql的相关配置(端口,安装目录,数据目录),在my.ini文件中修改port,basedir,datadir
3,为新的mysql创建数据目录(从mysql的安装目录中拷贝data文件夹);
4,打开cmd命令窗口,为新的mysql创建windows系统服务mysqld install MySQL2  --defaults-file="D:\MySQL Server 5.5 Copy\my.ini"
 5,检查创建的系统服务,并启动测试;

到这里,就把从数据库搞好了。

接下来就是配置主从数据库了。

1.在主数据的my.ini文件中增加如下信息:

server-id:3306//给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号,在一个集群中,这个id是不能重复的;
log-bin=master-bin://开启二进制文件;后面设置的这个master-bin就是二进制文件的名字前缀(名字);
log-bin-index=master-bin.index//开启二进制文件的索引;名字一般为log-bin.index

2.启动主数据库,执行show master status;

mysql> show master status;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000001 | 107 | | |
+-------------------+----------+--------------+------------------+
1 row in set

只要能查询到信息,说明主库OK了。

这里要注意上面显示的Postion是指当前bin-log文件记录到的位置,如果你的从数据库可以对过去的数据既往不咎,那你在下面设置同步时可以将起点设置为最新的Postion,不过这样会出现数据不一致的情况,看情况选择吧。

3.配置从数据库

在从数据的my.ini文件中增加如下信息:

server-id=3307;//不一定3307,随你
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index

4.启动从服务器

5.让从数据库指定master库,并且设置同步数据的信息

在从数据库的命令行中运行下面的这一句命令

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

解释一下,最后master_log_pos=107的作用是指定请求同步Master的bin-log的哪一行数据之后的内容;

6.完事了,修改主数据库的数据,然后测试从数据库的数据是否跟着同步修改了呢。

java项目如何进行读写分离?可以看我另一篇文章参考下:

https://www.cnblogs.com/tinyj/p/9864128.html

mysql-配置主从数据库,实现读写分离的更多相关文章

  1. MySQL搭建主从数据库 实现读写分离

    首先声明,实际生产中,网站为了提高用户体验,性能等,将数据库实现读写分离是有必要的,我们让主数据库去写入数据,然后当用户查询的时候,然后在从数据库读取数据,故能减轻数据库的压力,实现良好的用户体验! ...

  2. mysql配置主从数据库

    1.目的 1.1 实现数据备份 1.2 项目访问时可以实现读写分离,提高访问和操作数据的速度<读写分离好处> 2.背景 这次的主从配置主要实现主库数据的改变可以实现同步到从库中: 此次试验 ...

  3. tp5主从数据库设置读写分离

    // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '192.168.0.5,192.168.0.6', // 数据库名 'databas ...

  4. 使用mysql proxy对数据库进行读写分离

    服务器安排如下: 192.168.100.128 主 192.168.100.129 从 192.168.100.130 mysql-proxy 1.在100.130中下载安装mysql-proxy ...

  5. windows mysql主 Linux mysql 从 主从同步,读写分离

    Mysql –master linux-slave 一.My.ini: Server-id=1 relay-log=relay-bin relay-log-index=relay-bin-index ...

  6. MySQL主从同步、读写分离配置步骤

    现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master) 192.168. ...

  7. MySQL主从同步、读写分离配置步骤、问题解决笔记

    MySQL主从同步.读写分离配置步骤.问题解决笔记 根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记:       现在使用的两台服务器已经 ...

  8. MySQL架构之 主从+ProxySQL实现读写分离

    准备服务器: docker run -d --privileged -v `pwd`/mysql_data:/data -p 3001:3306 --name mysql5-master --host ...

  9. MySQL主从复制技术与读写分离技术amoeba应用

    MySQL主从复制技术与读写分离技术amoeba应用 前言:眼下在搭建一个人才站点,估计流量会非常大,须要用到分布式数据库技术,MySQL的主从复制+读写分离技术.读写分离技术有官方的MySQL-pr ...

  10. 利用oneproxy部署mysql数据库的读写分离

    实验系统:CentOS 6.6_x86_64 实验前提:防火墙和selinux都关闭 实验说明:本实验共有4台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 oneproxy-rhel ...

随机推荐

  1. ubuntu14.04搭建ftp服务器

    一,搭建匿名FTP服务器 实现ftp匿名登录,上传,下载,重命名文件. 1. 首先安装vsftpd:sudo apt-get install vsftpd,装好之后,默认的ftp根目录是在 /srv/ ...

  2. springboot 项目中 使用 原型 模式 实现每一次 都获取不同的实例

    直接 上代码:

  3. js实现抛物线

    这个是很简单的一种方式,利用了css3的transition属性 <!DOCTYPE html> <html lang="en" style="widt ...

  4. CF666E Forensic Examination SAM+线段树合并+前缀树倍增

    $ \color{#0066ff}{ 题目描述 }$ 给你一个串\(S\)以及一个字符串数组\(T[1..m]\),\(q\)次询问,每次问\(S\)的子串\(S[p_l..p_r]\)在\(T[l. ...

  5. php-elasticsearch scroll分页详解

    背景 ps:首先我们在一个索引里面写入一万条以上的数据.作为数据源 现在我想看到第一万零一条数据,首先第一想法是,from 10000 size 1 ,这样做会包下面错误.显然是不成立的.此时便会用到 ...

  6. postgres常用命令

    1.登录 psql -U pname -d database  // pname 表示postgres的登录用户名,database 则表示要访问的数据库 2.查看所有的数据库 \l 3.查看所有的表 ...

  7. js 的常用方法和对象

    每日分享: 加油!你一定可以!你是最牛逼的!!!-------------------------------------------------------------------------- - ...

  8. Emma姐

  9. css :before 内容左边 分割线(四)

    商品 左边分割线,使用css伪类实现,before or  after <style> *{ margin:; padding:; } .clearfix { *zoom:; } .cle ...

  10. SpringCloud---API网关服务---Spring Cloud Zuul

    1.概述 1.1 微服务架构出现的问题   及  解决: 1.1.1 前言 每个微服务应用都提供对外的Restful API服务,它通过F5.Nginx等网络设备或工具软件实现对各个微服务的路由与负载 ...