Mysql -- 读写分离
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,文章目录一、Mysql 读写分离原理二、关于 Amoeba三、配置实例第一步:配置 Amoeba 服务器第二步:在三台 mysql 服务器上添加权限,开放给 amoeba 访问(即三台mysql允许a
千家信息网最后更新 2025年01月23日Mysql -- 读写分离
文章目录
一、Mysql 读写分离原理
二、关于 Amoeba
三、配置实例
第一步:配置 Amoeba 服务器
第二步:在三台 mysql 服务器上添加权限,开放给 amoeba 访问(即三台mysql允许amoeba对它们进行访问)
第三步:在 amoeba 服务器上配置读写分离功能
第四步:客户端测试
四、总结
一、Mysql 读写分离原理
读写分离就是只在主服务器上写,只在从服务上读;
主数据库处理事务性查询,从数据库处理 select 查询;
数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库
二、关于 Amoeba
(1)Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求。
(2)Amoeba相当于一个SQL请求的路由器,目的是为负载均衡、读写分离、高可用性提供机制,而不是完全实现它们。需要结合使用MySQL的 Replication等机制来实现副本同步等功能。
三、配置实例
环境说明:
准备三台 Mysql服务器(一台为主服务器,其余两台为从服务器);
一台 Amoeba,用来实现读写分离,写的操作交给主服务器,读的操作发给两台从服务器;
实验验证:在客户机上执行写的操作,在主、从服务器上验证。
说明:Mysql 主从复制与读写功能是密切相关的,通过主从复制来实现数据同步,再通过读写分离来提升数据库的并发负载能力。
应用客户端 192.168.220.131
Amoeba 192.168.220.129
主服务器 192.168.220.141
从服务器 1 192.168.220.140
从服务器 2 192.168.220.136
第一步:配置 Amoeba 服务器
(1)关闭防火墙:
systemctl stop firewalld.service setenforce 0
(2)安装管理 jdk:
1、安装 jdk
cp jdk-6u14-linux-x64.bin /usr/local/ //复制./jdk-6u14-linux-x64.bin //安装jdk ,注意这一步,一路按回车到最后,提示输入yes,等待安装
2、方便管理,将jdk包重新命名:
mv jdk1.6.0_14/ /usr/local/jdk1.6
3、修改 profile 文件
export JAVA_HOME=/usr/local/jdk1.6export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libexport PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin/:$PATH:$HOME/binexport AMOEBA_HOME=/usr/local/amoebaexport PATH=$PATH:$AMOEBA_HOME/bin
使环境变量生效:
source /etc/profile
(3)解压 amoeba包:
1、先创建一个文件
mkdir /usr/local/amoeba
2、解压
tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
3、赋权,并验证是否安装成功
chmod -R 755 /usr/local/amoeba/
输入:/usr/local/amoeba/bin/amoeba ,按回车检查是否成功
第二步:在三台 mysql 服务器上添加权限,开放给 amoeba 访问(即三台mysql允许amoeba对它们进行访问)
进入数据库,输入以下命令:
grant all on *.* to test@'192.168.220.%' identified by '123.com';//允许ip为192.168.220网段从任意终端通过123.com的密码进行访问
第三步:在 amoeba 服务器上配置读写分离功能
1、cd /usr/local/amoeba
vim conf/amoeba.xml第30行:amoeba 第32行:123456 117行去掉注释: master slaves
2、vim conf/dbServers.xml
26-29行:去掉注释,设置登录用户名和密码test 123.com 找到主服务器和从服务器模块,修改好名称和对应IP地址:主服务器:192.168.220.141 第一台从服务器:192.168.220.140 第二台从服务器:192.168.220.136 指定从服务器池:slave1,slave2
3、启动 amoeba
/usr/local/amoeba/bin/amoeba start& //&表示将进程放到后台,时间较长,稍等待1
第四步:客户端测试
1、客户端虚拟机,可以直接用yum安装一个mysql服务
yum install -y mysql
2、连接 amoeba 服务器
(1)指定密码和端口连接 amoeba
mysql -u amoeba -p 123456 -h 192.168.220.129 -P8066
(2)创建一个 名为 school 的库,再创建一个叫 info 的表
MySQL [school]> create table info ( -> id int(4) not null primary key, //指定id号,为primary key,不为空 -> name varchar(10) not null, //名字 -> score decimal(4,1) not null); //成绩Query OK, 0 rows affected (0.03 sec)
3、三台mysql服务器验证实验结果
首先验证写的操作是否分离:
(1)此时,我们在主服务器上,直接进入数据库,就会发现也多了一个名为 info的表
(2)但是,两台从服务器上并没有:
所以,我们在客户端写入的语句,在主服务器上会查询到,但是两台从服务器上并没有,此时写的操作就直接交给了主服务器。
接下来是验证读的操作:
(1)在两台从服务器上的各自也创建一个 info 表,也都各自写入两条信息。
(2)客户端查询 info 表的内容,因为做了读写分离操作,所以查询的内容应该是 两台从服务器上 info表的内容。
因此,用户读取数据,同时通过从服务器,这样就减轻了主服务器的并发量。
四、总结
这篇博客,为了展示读写分离的实验效果,并没有同时做主从同步,在企业网中,主从同步和读写分离是密不可分的。这样,客户对数据库进行写的操作时,就由主服务器承担;进行读取,查询等操作时,就由从服务器来承担(由于做了主从同步,每台从服务器的数据和主服务器是一样的)
在高并发请求时,实现了负载均衡,保证数据的安全性,服务器的高效运行
服务
服务器
数据
数据库
客户
客户端
三台
同步
查询
配置
验证
主从
功能
均衡
内容
密码
用户
实验
应用
输入
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库高可用架构构建
和成网络技术
c 程序调用数据库
互联网软件开发公司名字
仿造健康码软件开发
安全数据库 普通数据库
数据库工具 ob
阿里云服务器系统管理
软件开发合同的模板
软件测试学数据库做什么
安徽云扬网络技术有限公司
简述如何发展网络安全战略
万朋网络技术有限公司
学软件开发难
手机怎么设置网络安全
县级网络安全信息化审计
专业学习软件开发需要多少钱
dedecms 数据库表
广州市橙心时代网络技术有限公司
制作打印数据库
商店软件开发学什么
韩国网络安全专业大学排名
阿里云普通服务器防护
数据库报表怎么用
阿里云服务器系统管理
数据库常用约束和作用
网络安全审判办法什么时候实施
山东济南浪潮服务器店面哪家好
千千惠互联网科技有限公司
学生网络安全知识题库