mysql-配置主从数据库,实现读写分离
主从分离的原则:所有的写操作在主数据库中进行,因为主从分离的原理是涉及到同步数据,那就可能会出现延迟或者其他问题,就可能会出现脏数据。
所以,在从库中进行的读操作也必须是有一定容忍性的数据,例如日志等。
例如需要注意,如果一个业务中有读和写的操作。
那么这个操作的库必须是主库,因为这个涉及到事务,需要非常小心。
主从同步的原理:
从数据库后台线程请求主数据库的更新数据,主数据库后台线程接收到请求后会读取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-配置主从数据库,实现读写分离的更多相关文章
- MySQL搭建主从数据库 实现读写分离
首先声明,实际生产中,网站为了提高用户体验,性能等,将数据库实现读写分离是有必要的,我们让主数据库去写入数据,然后当用户查询的时候,然后在从数据库读取数据,故能减轻数据库的压力,实现良好的用户体验! ...
- mysql配置主从数据库
1.目的 1.1 实现数据备份 1.2 项目访问时可以实现读写分离,提高访问和操作数据的速度<读写分离好处> 2.背景 这次的主从配置主要实现主库数据的改变可以实现同步到从库中: 此次试验 ...
- tp5主从数据库设置读写分离
// 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '192.168.0.5,192.168.0.6', // 数据库名 'databas ...
- 使用mysql proxy对数据库进行读写分离
服务器安排如下: 192.168.100.128 主 192.168.100.129 从 192.168.100.130 mysql-proxy 1.在100.130中下载安装mysql-proxy ...
- windows mysql主 Linux mysql 从 主从同步,读写分离
Mysql –master linux-slave 一.My.ini: Server-id=1 relay-log=relay-bin relay-log-index=relay-bin-index ...
- MySQL主从同步、读写分离配置步骤
现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master) 192.168. ...
- MySQL主从同步、读写分离配置步骤、问题解决笔记
MySQL主从同步.读写分离配置步骤.问题解决笔记 根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记: 现在使用的两台服务器已经 ...
- MySQL架构之 主从+ProxySQL实现读写分离
准备服务器: docker run -d --privileged -v `pwd`/mysql_data:/data -p 3001:3306 --name mysql5-master --host ...
- MySQL主从复制技术与读写分离技术amoeba应用
MySQL主从复制技术与读写分离技术amoeba应用 前言:眼下在搭建一个人才站点,估计流量会非常大,须要用到分布式数据库技术,MySQL的主从复制+读写分离技术.读写分离技术有官方的MySQL-pr ...
- 利用oneproxy部署mysql数据库的读写分离
实验系统:CentOS 6.6_x86_64 实验前提:防火墙和selinux都关闭 实验说明:本实验共有4台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 oneproxy-rhel ...
随机推荐
- Logstash 收集 IIS 日志
日志样例 查看 IIS 日志配置,选择格式为 W3C(默认字段设置)保存生效. 2016-02-25 01:27:04 112.74.74.124 GET /goods/list/0/1.html - ...
- logstash--使用ngxlog收集windows日志
收集流程 1nxlog => 2logstash => 3elasticsearch 1. nxlog 使用模块 im_file 收集日志文件,开启位置记录功能 2. nxlog 使用模块 ...
- [ActionScript 3.0] flash中的颜色
在 Flash 中,颜色就是一串特殊的数字,一个颜色值可以是0到16,777,215中的任意数值,这就是24位(bit)色彩.也许大家会问,为什么有16,777,216(256*256*256)种颜色 ...
- php 扩展 debug问题
php安装时为debug模式 ./configure --prefix=/usr/local/php7.1.6-debug --with-curl --with-pcre-regex --enabl ...
- POJ2259 Team Queue (JAVA)
第一次TLE,对每个group重新设置Queue中定位,定位到每个group的最后一个元素,但WA 经过检查,DEQUEUE时没有根据情况重新计算group,插入时没有根据情况重新给last赋值 贴A ...
- HTML DOM--基础概述
DOM: Document Object Model(文档对象模型)的简写,那么,这是一种什么样的模型,简单点来说,就是将文档当成了一棵树.它独立于平台与语言,允许程序与脚本动态地访问.更新文档的结构 ...
- Kettle 解决数据锁的问题(事务(进程 ID 51)与另一个进程被死锁在 锁 资源上)
1.Kettle做了一个作业, 执行的时候问题发生在步骤2和步骤3之间,也就是步骤2还未完全执行完的时候,步骤3就要更新步骤2插入的数据,造成死锁.(我的理解是既然都分开作业了,那么每个作业都是一个单 ...
- .net core webapi发布
地址:https://www.cnblogs.com/laozhang-is-phi/p/9565227.html#autoid-5-1-0 地址2:https://www.cnblogs.com/f ...
- [转] HBase 深入浅出
[From] https://www.ibm.com/developerworks/cn/analytics/library/ba-cn-bigdata-hbase/index.html HBase ...
- MySQL授权命令grant的详细使用方法
2019-01-07 转自 https://www.cnblogs.com/crxis/p/7044582.html 本文实例,运行于 MySQL 5.0 及以上版本. MySQL 赋予用户权限命令的 ...