mysql主从复制配置防火墙策略_mysql配置主从复制,读写分离(附amoeba源码包)

本文介绍了如何配置MySQL主从复制和使用Amoeba代理实现读写分离。详细步骤包括:关闭防火墙和SELinux,设置时间同步,配置MySQL主从服务器,创建用户授权,设置Amoeba代理,并通过客户端验证读写分离功能。
摘要由CSDN通过智能技术生成

mysql5.5基于表锁定 读取和写入互阻塞,为了解决这个问题便有了主从复制,读写分离的群集设置。

63ca97de129eec557da81c2dfc77523f.png

三次认证

1、主从同步认证

2、amoeba访问数据库认证

3、客户端访问amoeba认证

写入和读取:

客户端写入数据写入到的是mysql主服务器中

从服务器同步主服务器

读取是读取从服务器上的内容

从而实现读写分离

本实验使用5台centos7

使用redhat6操作也相同

主服务器地址:192.168.60.128

从服务器1地址:192.168.60.136

从服务器2地址:192.168.60.143

amoeba代理地址:192.168.60.144

客户端地址:192.168.60.129

实验需要我们每台虚拟机都关掉防火墙,加强性组件

systemctl stop firewalld.service

setenforce 0

一、使用ntp协议,时间同步

1、主服务器

rpm -q ntp //默认是安装了

vim /etc/ntp.conf //修改ntp配置文件

在末行插入以下两条语句

server 127.127.60.0 //自身60网段

fudge 127.127.60.0 stratum 8 //时间层级

systemctl start ntpd //启动ntp服务

2、从服务器(两台配置相同)

rpm -q ntpdate //默认也是安装了

systemctl start ntpd //启动服务

/usr/sbin/ntpdate 192.168.60.128 //同步主服务器,显示以下则同步成功

eed732d5ec8f5e0236a55f5e5da6453a.png

二、配置mysql

安装mysql5.5(开头有安装包和脚本,不在赘述)

1、主服务器主配置文件

vim /etc/my.cnf

server-id = 11 //服务唯一标识

log-bin=master-bin //去掉注释,开启二进制日志

log-slave-updates=true //允许从服务器同步同步主服务器

service mysql restart //重启服务

2、主服务器进mysql给从服务器创建用户授权

grant replication slave on . to 'myslave'@'192.168.60.%' identified by '123123';

flush privileges 刷新即时生效

show master status 查看主服务器状态

09d18cbb6b1cd34de006b183517198bd.png

3、从服务器配置文件设置(除server-id外,两台从服务器设置一样)

vim /etc/my.cnf

server-id 22 //修改server-id

在server-id下添加如下两行

relay-log=realy-log-bin

relay-log-index=slave-relay-bin.index

service mysqld restart

aa36912a48d3816b51ec3defe1a3e3f2.png

4、从服务器进mysql进行操作(两台从服务器操作相同)

change master to master_host='192.168.60.128',master_user='myslave',master_password='123123',master_log_file='master-bin.000001',master_log_pos=338;

start slave; //开启从复制

show slave status\G //查看slave状态

8d2f5ad6a574754cb757f69740a73d83.png

450c2b41edda0e9ab9d715c547c392e8.png

5、主从复制测试

b7edf1cb38161bf90a12443c6e434ea2.png

2ae70527b29a0e4767fc29643aae80ad.png

1631625101270e2bf0d0cab7fb6ae43a.png

三、amoeba代理服务器

systemctl stop firewalld.service //关闭防火墙及加强性组件

setenforce 0

1、挂载宿主机,复制JDK文件

b938b54d77c140f190aa683774ef6aae.png

2、./jdk-6u14-linux-x64.bin

一直回车就行了,有提示会告诉你填yes/no,填yes,开始安装

21d2e695a67700ee701955adf0b25362.png

9e4e2eba42b7b460b2fb7f80337d3a7e.png

3、添加环境变量

先将jdk的文件改名,方便后面填写环境变量

mv jdk1.6.0_14/ /usr/local/jdk1.6 //改名

vim /etc/profile //末行添加JDK环境变量,如下

export JAVA_HOME=/usr/local/jdk1.6

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin/:$PATH:$HOME/bin

export AMOEBA_HOME=/usr/local/amoeba

export PATH=$PATH:$AMOEBA_HOME/bin

scource /etc/profile //刷新环境变量

4、安装amoeba

mkdir /usr/local/amoeba //创建amoeba解压目录

chmod 755 /usr.local/amoeba 必须要755权限

tar zxf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/ //解压

/usr/local/amoeba/bin/amoeba //查看amoeba是否安装成功

d6df0f6122d055ec050c272a1ee6331f.png

5、每台mysql服务器都给amoeba创建权限

grant all on . to 'test'@'192.168.60.%' identified by '123456';

创建了一个用户给amoeba并且赋予权限,amoeba将以这个身份登录mysql

6、修改amoeba.xml配置文件

vim /amoeba/conf/amoeba.xml

amoeba 30行修改用户为amoeba

456789 32行认证amoeba密码为456789

117行

master 改成master

7、修改dbServers.xml配置文件

26行

test 改成test

29行

123456 去掉注释 改成认证mysql的密码

42行

改成master

192.168.60.128 ip改成master的ip

第二台slave2

192.168.60.143

末尾

池子名改为slaves

slave1,slave2 池子中添加slave1,savel2

8、开启amoeba服务

/usr/local/amoeba/bin/amoeba start& 开启服务

netstat -anpt | grep java

230f3d54109a997c9270412fbefe377c.png

5ee97e5607c13dcb9ddda2f2cd9cabb9.png

四、客户端验证读写分离

1、关闭防火墙,安装mysql并登陆

systemctl stop firewall

setenforce 0

yum install mysql -y

mysql -u amoeba -p456789-h 192.168.60.144 -P8066 远程通过amoeba的ip登陆

e85efcb1c6be5e5f5501b82c50969128.png

2、主服务器创建一张list表,从服务器停止slave

创建的list表会被从服务器同步,首先我们利用客户端先写入一些信息到这张表中,到主服务器中查看,如果内容在主服务器显示,说明写入是针对主服务器。

然后我们分别在从服务器list表中写入一些信息,在客户端查看,如果内容显示的是从1,从2,服务器的内容,说明读功能针对从服务器。

满足以上两条则实现读写分离。

6eccdb69e3e89806e963b09fefad4d41.png

3、客户端list表插入信息,主服务器查看,证明写入是写在主服务器上

a72de2b47606c391f798ed9095765af3.png

52c4ef59fcbe424921628fe12293b74a.png

4、从服务器分别写入数据,客户端查看,显示数据为从服务器数据,则证明读是读从服务器数据

47b3c926fc531e863c6ece7433e0024a.png

a54c7b2092aa5faac4c330aaae46a22c.png

9e9082b615f368f879c8e61f0fb90f13.png

主从同步,读写分离成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值