window mysql读写分离配置_基于windows的mysql读写分离和amoeba配置

本文介绍了在Windows环境下配置MySQL读写分离和Amoeba集群的详细步骤。首先,通过设置主从库实现数据同步,然后利用Amoeba作为代理实现读写分离和负载均衡。在验证过程中,确保了主从数据一致性和Amoeba的配置正确性,最终实现了数据库的高效管理。
摘要由CSDN通过智能技术生成

大四项目实训,老师要求我们学习mysql的集群和mysql的读写分离。mysql集群已经搞定,也是基于windows下的,实验室机器都是windows的。mysql集群已经学会如何配置,但是感觉意义并没有那么大,毕竟在实际生产中基本都是使用mysql的读写分离。下面,分享一下我配置mysql读写分离的过程。

mysql读写分离是mysql自带的功能,只要配置好了从库和主库,就能实现读写分离,关键是在于需要代理分发请求到mysql的从库和主库上才能实现数据库的负载均衡。

本次配置使用的是虚拟机,和本机,相当于四台电脑。

准备如下:

oracle vm :  win7-1(主)  win7-2(从库) win7-3(从库)

主库:           172.18.0.48

从库1:      172.18.0.60

从库2:      172.18.0.62

amoeba: 172.18.0.202(本机)

系统:win7 32位

mysql版本:mysql-5.5.28-win32.msi

amoeba版本:amoeba-mysql-1.2.0-GA.zip

一、配置主库

1.配置主库:172.18.0.48

1.1在my.ini文件最后添下表信息:mysql安装目录

#数据库ID号, 一般为1时表示为Master,从库id大于主库

server-id = 1

#启用二进制日志;

log-bin=mysql-bin

#需要同步的二进制数据库名;

binlog-do-db=shop

binlog-do-db=test

#不同步的二进制数据库名,如果不设置可以将其注释掉;

binlog-ignore-db=information_schema

#设定生成的log文件名;

log=C:\program\mysql\log\mysql.log

#把更新的记录写到二进制文件中;

log-slave-updates

1.2重启mysql服务。

cmd命令行: net stop mysql net start mysql

或者服务窗口鼠标操作

1.3 配置从库访问主库的权限

grant replication slave on *.* to repl_user@172.18.0.60 identified by '123456';

grant replication slave on *.* to repl_user@172.18.0.62 identified by '123456';

1.4查看主库信息。

登入mysql命令行,执行:    showmaster status;

00bd297b5ca43d30ebe078551233fd5f.png

其中的File 和Position 在配置从库的时候要用到

2.配置从库:172.18.0.60 172.18.0.62  (两个从库配置一样)

2.1在从库mysql安装目录下的my.ini文件末尾加入一下信息:

id不可重复,比主库id大

从库:172.18.0.60

server-id = 2

# 增加 日志文件, 用于验证读写分离

log = C:\program\mysql\log\mysql.log

从库:172.18.0.62

server-id = 3

# 增加 日志文件, 用于验证读写分离

log = C:\program\mysql\log\mysql.log

2.2重启mysql服务

2.3 进入mysql命令行界面,进行相应设置,输入以下命令

命令1

stopslave;

命令2:填写主库ip

change master to

master_host='172.18.0.48',

master_user='repl_user',

master_password='123456',

master_log_file='mysql-bin.000006',

master_log_pos=2266821;

命令3:

start slave;

其中的master_log_file和master_log_pos与主库的相对应(看上图)

910571cb8593487b3c0119300af6db54.png

2.4查看从库状态

在从库执行mysql命令:show slave status\G;

下图的waiting  for master to send event  代表已经连接上主库

91d325d5ce5996b5510bce917ec9ce9b.png

二、 验证主从库配置是否正确

在主库执行对应数据库的写操作,从库的信息会与主库一致。本次配置同步的数据库为shop 和 test,对test数据库进行操作。

2.1 在主库test数据库插入数据

656212a850529f75f6ed270eb0d281f9.png

2.2.在从库查询

283d46b9be62d79919fbd973a8872833.png

可以在从库查看到主库写入的信息,说明主从复制配置成功

三、配置amoeba

原理:所有mysql写入读取语句由amoeba负责代理转发到相应的主库从库,实现数据库负载均衡

amoeba官方提供的图:

c45d9858f3a2a78c1535978974beb3f2.png

3.1设置amoeba所在ip访问主从库的权限(主从都要设置)

f87ccb390274f3f656e475952f039e17.png

设置跟给主给从库权限设置类似,不过权限为all,允许amoeba的所有操作

3.2将压缩包解压出来,配置conf目录下的amoeba.xml文件

有参考其他博文,配置上基本有dbServer.xml,但是官方下载的amoeba压缩包没有这个文件,需要手动创建,amoeba.xml引入这个配置。

本次配置跟其他不同,dbServer.xml 没有独立出来,直接配置在amoeba.xml上

8066

172.18.0.202

20

30

30

128

true

root

546626

com.meidusa.amoeba.net.AuthingableConnectionManager

defaultManager

3306

172.18.0.48

shop

amoeba

546626

200

200

10

600000

600000

true

true

defaultManager

3306

172.18.0.60

shop

amoeba

546626

200

200

10

600000

600000

true

true

defaultManager

3306

172.18.0.62

shop

amoeba

546626

200

200

10

600000

600000

true

true

1

slave1,slave2

${amoeba.home}/conf/rule.xml

${amoeba.home}/conf/functionMap.xml

${amoeba.home}/conf/ruleFunctionMap.xml

1500

master

master

multiPool

true

关于dbServer的配置可以看这个链接,里面有详细说明各节点配置的含义http://docs.hexnova.com/amoeba/rw-splitting.html#example.rw.dbServer.virtualSlave

3.3启动amoeba

双击amoeba安装目录bin文件夹下的amoeba.bat即可。启动会窗口不会关闭,否则出错

四、测试amoeba配置是否成功

1.把本次实训用到的shop数据库导入,相应配置文件改为如下:

1d7b7b471ae0bffa8d8b3e72aa19832c.png

amoeba端口为8066,其中的用户名和密码在amoeba配置文件中配置

2.运行tomcat,执行相应查询操作

708a5ae14d73adf83979d6869e9f4f38.png

模仿京东的界面。。。。。,数据是队友爬下来的

数据查询没有问题,配置成功。可以在从库的日志文件里查看查询日志

更简单的测试方法是用navicat直接连接amoeba,填上端口和用户名密码即可看到数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值