mysql driver 读写分离_Mysql主从复制和读写分离实践

1、主从复制

原理

MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二

进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他

数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如

果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个

SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实

现了主从复制。

实践

准备工作

主数据库服务器(master):192.168.128.164,MySQL已经安装,并且无应用数据。

从数据库服务器(slave):192.168.128.167,MySQL已经安装,并且无应用数据。

主数据库master配置

修改mysql配置文件

重启mysql,并创建用于同步的用户账号

vi /etc/my.cnf

在[mysqld]部分插入以下两行配置

log-bin=mysql-bin #开启二进制日志

server-id=1 #设置server-id 需唯一

1

2

打开mysql会话shell

mysql -uroot -proot

创建用户:用户:slave 密码:slave

注意:ip为slave的地址

CREATE USER 'slave'@'192.168.128.167' IDENTIFIED BY 'slave';

1

分配权限

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.128.167';

flush privileges; #刷新权限

1

2

查看master状态,并记录二进制文件名(mysql-bin.000001)位置(106)

从数据库slave配置

修改mysql配置文件

重启mysql,打开mysql会话,执行同步SQL语句(需要主服务器主机名,登陆凭据,二进制文件的名称和位置)

启动slave同步进程

查看slave状态

重启服务

service mysqld restart

mysql> show master status;

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 | 106 | | |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

1

2

3

4

5

6

7

8

vi /etc/my.cnf

在[mysqld]部分插入以下一行配置

server-id=2 #设置server-id 需唯一

mysql> CHANGE MASTER TO

MASTER_HOST='192.168.128.164',

MASTER_USER='slave',

MASTER_PASSWORD='slave',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=106;

1

2

3

4

5

6

7

start slave;

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.128.164

Master_User: slave

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 106

Relay_Log_File: mysqld-relay-bin.000002

Relay_Log_Pos: 251

1

2

3

4

5

6

7

8

9

10

11

主从配置完成,可以通过主库建库,建表,插入数据测试

读写分离

Mysql新版驱动类ReplicationDriver实现读写分离

准备工作,需搭建好mysql主从集群

实现目标

使数据写入到master

读数据时,从slave中读取

原理

使用mysql驱动自带的replicationDriver来实现,replicationDriver简单来说就是存在

两个Connection,一个masterConnection,一个slaveConnection;当

setReadonly(true)就把currentConnection=slaveConnection,反之设置为

masterConnection

触发条件

读操作需设置 readOnly 为 true

实现步骤

applicationContext.xml

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

读操作需设置readonly=true

测试

数据库中间件

如:mysql-proxy、mycat等

---------------------

作者:Elk_love_madness

原文:https://blog.csdn.net/qq_38928944/article/details/85341616

版权声明:本文为博主原创文章,转载请附上博文链接!

ae570658e9b04b4a3030744ecc798a39.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二十世纪最伟大的10大算法

来源:数学中国发明十大算法的其中几位算法大师1、1946 蒙特卡洛方法[1946: John von Neumann, StanUlam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook upthe Metropolis algorithm, also known as the Monte Carlo method.]1946年&…

mybatis 动态字段与表中不一样_8.mybatis的基本工作流程(2.0)※

mybatis的基本工作流程1.读取配置文件,配置文件包含数据库连接信息和Mapper映射文件或者Mapper包路径。2.有了这些信息就能创建SqlSessionFactory,SqlSessionFactory的生命周期是程序级,程序运行的时候建立起来,程序结束的时候消亡3.SqlSessionFactory建…

判断表达式值是否为空_如何在 Python 中判断列表是否为空

在判断列表是否为空时,你更喜欢哪种方式?决定因素是什么?在 Python 中有很多检查列表是否是空的方式,在讨论解决方案前,先说一下不同方法涉及到的不同因素。我们可以把判断表达式可以分为两个阵营:对空列表…

《Lancet》发表全球学者联合声明!

来源:中国生物技术网 2020年2月18日,《LANCET》上发表通讯(Correspondence)文章,全球科学家发表声明反对阴谋论,全力支持奋战在疫情一线的中国科研技术工作者。就像病毒没有国界一样,科学也没有…

“哥德尔不完备定理”到底说了些什么?

来源: 赵昊彤科学网博客链接地址:http://blog.sciencenet.cn/blog-409681-1067019.html 【编者按:不知为何?一直不相信已有的数理、物理、生理、心理、管理……能够研究好人机融合智能系统。究其因,需要出现新的数/物…

ghost镜像浏览器_新电脑,GHOST装不进系统?不要急,跟我来

前几天,朋友转了台新电脑,用的是第十代CPU I3 10100,什么都安装好了,也按要求做了GPT分区,用GHOST安装了WIN10系统,可是重启时就是进不去,在BOOT选项里根本看不到硬盘。这是为什么呢&#xff1f…

python异步消费kafka_Kafka 通过python简单的生产消费实现

使用CentOS6.5、python3.6、kafkaScala 2.10 - kafka_2.10-0.8.2.2.tgz (asc, md5) 一、下载kafka 下载地址 https://kafka.apache.org/downloads 里面包含zookeeper二、安装Kafka 1、安装zookeeper mkdir /root/kafka/ tar -vzxf kafka_2.10-0.8.2.2cd /root/kafka/kafka_2.10…

【技术趋势】2020 五大技术趋势:无人驾驶发展、机器视觉崛起、区块链实用化、人类增强技术、超自动化...

图源:https://unsplash.com/来源:AI开发者原标题:Here Is A Rundown of 5 Major Tech Trends Hitting 2020作者:| Richard Liu链接:https://medium.com/swlh/here-is-a-rundown-of-5-major-tech-trends-hitting-2020-6…

正则不能输入特殊字符_正则表达式语法学习和在线练习

标题: 正则表达式语法学习和在线练习作者: 梦幻之心星 sky-seekerqq.com标签: [#正则表达式,#语法,#学习,#练习]目录: [语法]日期: 2021-01-26背景说明正则表达式使搜索和替换操作更加灵活高效。许多程序设计语言都支持使用正则表达式进行字符串操作。正则表达式是由普通字符…

非接触物体尺寸形态测量_检修人必备的测量常识

小编今天给大家分享一下测量的常识,咱们搞机械的一定要懂点测量知识!一、测量器具的分类测量器具是一种具有固定形态、用以复现或提供一个或多个已知量值的器具。按用途的不同量具可分为以下几类:1. 单值量具只能体现一个单一量值的量具。可用…

生物战教训、生物安全问题以及未来监控军民两用生物技术扩散的手段

来源:美国空军国家安全研究学会研究报告2005年9月【知远导读】本篇推送编辑节选自美国空军国家安全研究学会2005年9月发布的一份题为《生物战教训、生物安全问题以及未来监控军民两用生物技术扩散的手段》的研究报告。该报告直接来源于作者海伦普凯特(He…

如何避免字符串混淆加密_iOS-代码混淆加固方案

对于iOS来说,由于系统是封闭的,APP上架需要通过App Store,安全性来说相当高。但是对于大厂和知名APP而言,别人给的安全保障永远没有自己做的来得踏实。所以对于大厂、少部分企业级和金融支付类应用来说加固是相当重要的。下面是目…

DARPA计划在2021年开展多种新型武器概念研究

来源:中国指挥与控制学会“远射”项目DARPA计划于2021年投资2200万美元启动“远射”项目,演示一种空射武器系统。该系统由速度较慢的远程飞行器搭载至战区,在战区上空发射多枚空空导弹来实施作战。该武器可由现有战斗机外部挂载,或…

python算法实现源码_Python实现七个基本算法

1.顺序查找当数据存储在诸如列表的集合中时,我们说这些数据具有线性或顺序关系。 每个数据元素都存储在相对于其他数据元素的位置。 由于这些索引值是有序的,我们可以按顺序访问它们。 这个过程产实现的搜索即为顺序查找。顺序查找原理剖析:从…

python词云设计实例_python词云库wordcloud的使用方法与实例详解

wordcloud是优秀的词云展示第三方库一、基本使用 import jieba import wordcloud txt open("1.txt", "r", encodingutf-8).read() words jieba.lcut(txt) txt_1 " ".join(words) # print(txt1) w wordcloud.WordCloud(font_path"msyh.t…

细胞因子风暴与新冠肺炎

来源:陈辉科学网博客链接地址:http://blog.sciencenet.cn/blog-3426569-1219679.html 2020年2月15日下午,在国务院联发联控机制新闻发布会上,周琪院士介绍说“炎症因子风暴”[作者注释:即是细胞因子风暴(Cy…

mysql 启动 修改密码_基础的启动/停止/重启/密码修改MySQL

如何启动/停止/重启MySQL一、启动方式1、使用 service 启动:service mysqld start2、使用 mysqld脚本启动:/etc/inint.d/mysqld start3、使用 safe_mysqld启动:safe_mysqld&二、停止1、使用 service 启动:service mysqldstop2…

预编译对象解决SQL注入问题

转载于:https://www.cnblogs.com/suanshun/p/6739454.html

eclipse中添加jar包后运行时提示noclassdeffounderror_一看你就懂,超详细 java 中的 ClassLoader 详解,耐心看~...

备注:本文篇幅比较长,但内容简单,大家不要恐慌,安静地耐心翻阅就是Class文件的认识我们都知道在Java中程序是运行在虚拟机中,我们平常用文本编辑器或者是IDE编写的程序都是.java格式的文件,这是最基础的源码…

寻找人机之间的中间地带-评述3本人机协作的书

来源: 混沌巡洋舰1 AI 错觉知其然,更要知其所以然,了解数据挖掘的算法的基础原理,可以在这个人工智能和大数据可能比工业革命更能改变人的一生的历史时期中,更有智慧的应用人工智能。AI错觉这本书18年在美国出版&#…