同时从多个mysql中读取数据库_MySQL 数据库的主从复制与读写分离

在 Amoeba 服务器上安装 Java 环境

systemctl stop firewalld.service

setenforce 0

cp jdk-6u14-linux-x64.bin /usr/local/

cd /usr/local

./jdk-6u14-linux-x64.bin #回车,输入"yes",回车

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

修改环境变量

# vim /etc/profile #在文件末尾添加下面的行

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

# source /etc/profile #刷新环境变量

安装并配置 Amoeba 软件

# mkdir /usr/local/amoeba

# tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/

# chmod -R 755 /usr/local/amoeba/

# /usr/local/amoeba/bin/amoeba

amoeba start|stop #显示此内容说明 Amoeba 安装成功

在三台主从 MySQL 服务器上开放权限给 Amoeba 访问(三台服务器都要添加)

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

在 Amoeba 服务器上编辑 amoeba.xml 配置文件

# vim /usr/local/amoeba/conf/amoeba.xml

--30行--

amoeba #用户访问amoeba服务器的身份验证

--32行--

123456

--115行--

master #默认权限

--117-去掉注释-

master #赋予master写权限

slaves #赋予slaves读权限

# vi conf/dbServers.xml

-23行注释掉 作用:默认进入test库 以防mysql中没有test库时,会报错

--26--29--去掉注释-- #赋予amoeba用户权限

test

123456

-----42-主服务器地址---

192.168.100.200

--52-从服务器主机名-

--55-从服务器1地址-

192.168.100.201

--(这里上面6行复制修改)从服务器2地址

192.168.100.202

--64行--

--70行--

slave1,slave2

开启服务

/usr/local/amoeba/bin/amoeba start&

netstat -anpt | grep java

测试读写分离

客户机

systemctl stop firewalld.service

setenforce 0

mysql -u amoeba -p123456 -h 192.168.100.203 -P8066 #使用amoeba远程登录MySQL

Master 服务器

mysql -u root -p

mysql> create database wang;

mysql> use wzn;

mysql> create table wzn (id int(10),name varchar(10),address varchar(20));

Slave 服务器

mysql -u root -p

mysql> stop slave;

mysql> use wang;

mysql> use wzn;

# Slave1 服务器

mysql> insert into zang values('2','wzn','this_is_slave1');

# Slave2 服务器

mysq> insert into zang values('3','wzn','this_is_slave2');

此时我们通过客户机访问,使用select * from wzn;可以看到在两台 Slave 服务器上分别创建的数据。

我们在客户端上插入一条数据,此时查看表 wzn ,是看不到刚写的数据的,因为数据是写在 Master 服务器上,此时同步没有开启,但是我们登录 Master数据库可以看到数据写入成功。尝试开启同步,我们可以看到,数据同步到 Slave 数据库之后,我们可以看到新建的数据了。

由此可以证实:数据的写入是在 Master 服务器上;数据的读取是在 Slave 服务器上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值