MySQL+Amoeba 实现主从复制+读写分离+负载均衡

MySQL+Amoeba 主从复制+读写分离+负载均衡


准备工作
master: 192.168.0.6
slave1: 192.168.0.11
slave2: 192.168.0.12
Amoeba:192.168.0.7
均安装MySQL



一. Master服务器:

  1. 修改配置文件
# vim /etc/my.cnf
  1. 开启二进制日志,在[mysql]下方添加以下内容
server-id=1
log-bin=mysql-bin
  1. MySQL添加用户并赋予权限
mysql> grant replication slave on *.* to backup@'%' identified by 'backup';
mysql> grant all on *.* to test@'%' identified by 'test';
mysql> flush privileges;
mysql> show master status \G;
  1. 输出结果

File: mysql-bin.000001
Position: 323
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)


二. Slave1/Slave2服务器:

  1. 修改配置文件
# vim /etc/my.cnf
  1. [mysql]下方添加以下内容
server-id=2
relay-log=mysql-relay
  1. MySQL配置Master服务器
mysql> stop slave
mysql> change master to master_host='192.168.0.6',  master_user='backup', master_password='backup',  master_log_file='mysql-bin.000001', master_log_pos=323;
mysql> grant all on *.* to test@'%' identified by 'test';
mysql> start alave;
mysql> show slave status\G;
  1. 输出

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
出现两个Yes即成功配置


三. Amoeba客户机:

  1. 安装JDK
# rpm -ivh jdk-8u20-linux-x64.rpm
# vim /etc/profile
  1. 配置系统变量
export  JAVA_HOME=/usr/java/jdk1.8.0_20/
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
  1. 更新变量
# source /etc/profile
  1. 安装Amoeba
# mkdir /usr/local/amoeba
# tar zxf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba
# vim /usr/local/amoeba/bin/amoeba
  1. 修改Amoeba 大小为256k,否则不能启动
DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss256k"
  1. 修改Amoeba配置文件1
# /usr/local/amoeba/conf/amoeba.xml
<property name="user">root</property>	# Amoeba账号
<property name="password">root</property>	# Amoeba密码

....
....

<property name="defaultPool">master</property>	# 默认池
<property name="writePool">master</property>	# 写操作池
<property name="readPool">slaves</property>		# 读操作池
  1. 修改Amoeba配置文件2
# /usr/local/amoeba/conf/dbServers.xml
<property name="user">test</property>	# 主服务器MySQL账号
<property name="password">test</property>	# 主服务器MySQL密码

....
....

<dbServer name="master"  parent="abstractServer">
        <factoryConfig>
                <property name="ipAddress">192.168.0.6</property>	# 主服务器IP
        </factoryConfig>
</dbServer>

<dbServer name="slave1"  parent="abstractServer">	# name对应slave1
        <factoryConfig>
                <property name="ipAddress">192.168.0.11</property>	# 从服务器IP 1
        </factoryConfig>
</dbServer>

<dbServer name="slave2"  parent="abstractServer">	# name对应slave2
        <factoryConfig>
                <property name="ipAddress">192.168.0.12</property>	# 从服务器IP 2
        </factoryConfig>
</dbServer>

<dbServer name="slaves" virtual="true">		# name对应为slaves
        <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
                <property name="loadbalance">1</property>
                <property name="poolNames">slave1,slave2</property>	# 读服务器池
        </poolConfig>
</dbServer>

四. 测试连接

  1. 启动Amoeba
# /usr/local/amoeba/bin/amoeba start
  1. 连接
# mysql -u root -p root -h 192.168.0.7 -P 8806
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值