+++++++++++++搭建MySQL读写分离群集+++++++++++++
--------client--------------amoeba-------------主MySQL----------------从MySQL------------从MySQL---------
192.168.1.10 192.168.1.100 192.168.1.200 192.168.1.201 192.168.1.202
构建步骤:
一、在amoeba服务器中:
安装java环境
1、安装java
[root@localhost ~]# chmod +x jdk-6u14-linux-x64.bin
[root@localhost ~]# ./jdk-6u14-linux-x64.bin //输yes,按回车
[root@localhost ~]# mv jdk1.6.0_14/ /usr/local/java
[root@localhost ~]# rm -rf /usr/bin/java //删除原有的java
[root@localhost ~]# rm -rf /usr/bin/javac //删除原有的javac
[root@localhost ~]# ln -s /usr/local/java/bin/* /usr/bin/java
[root@localhost ~]# vim /etc/profile
添加:
export JAVA_HOME=/usr/local/java
export CLASSPATH=$CLASSPATH:$JAVA_HOME:/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/bin:$PATH:$HOME/bin
export AMOEBA_HOME=/usr/local/amoeba
export PATH=$PATH:$AMOEBA/bin
[root@localhost ~]# source /etc/profile
[root@localhost ~]# java -version
2、安装amoeba(变形虫)
[root@localhost ~]# mkdir /usr/local/amoeba
[root@localhost ~]# tar -zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
[root@localhost ~]# chmod 755 /usr/local/amoeba/ -R
[root@localhost ~]# /usr/local/amoeba/bin/amoeba //验证amoeba是否安装成功
[root@localhost ~]# /usr/local/amoeba/bin/amoeba start & //启动amoeba
[root@localhost ~]# netstat -anpt | grep java
3、配置Amoeba(实现读写分离,两个Slave读负载均衡)
1)主MySQL服务器、从MySQL服务器(2台)开放权限
[root@localhost ~]# mysql -u root -p123.com
mysql> grant all on *.* to 'test'@'192.168.1.%' identified by '123.com';
2)修改amoeba配置文件
[root@localhost ~]# vim /usr/local/amoeba/conf/amoeba.xml
修改:
3)修改dbServer.xml配置文件
[root@localhost ~]# vim /usr/local/amoeba/conf/dbServers.xml
修改:
...部分省略....
[root@localhost ~]# /usr/local/amoeba/bin/amoeba stop
[root@localhost ~]# /usr/local/amoeba/bin/amoeba start &
[root@localhost ~]# netstat -anpt | grep java
二、MySQL数据库服务器中(三台):
1、在主数据库上安装ntp时间服务
[root@localhost ~]# yum -y install ntp
[root@localhost ~]# vim /etc/ntp.conf
添加:
server 127.127.1.0
fudge 127.127.1.0 stratum 8
[root@localhost ~]# service ntpd restart
2、在从数据库上安装ntp时间服务
[root@localhost ~]# yum -y install ntpdate
[root@localhost ~]# ntpdate 192.168.1.1
3、安装MySQL服务(三台数据库服务器安装保持一致)(略)
4、配置mysql服务的主从复制(略)
三、验证:
1、在client上:
[root@localhost ~]# mysql -u amoeba -p123456 -h 192.168.1.100 -P8066
mysql> use hehe;
mysql> create table biao1 (id int(5),name char(10),address char(10));
2、在主MySQL服务器上:
mysql> insert into biao1 values(1,'hehe','master');
3、在2台从MySQL服务器上:
slave1:
mysql> stop slave;
mysql> insert into biao1 values(2,'hehe','slave1');
slave2:
mysql> stop slave;
mysql> insert into biao1 values(3,'hehe','slave2');
4、在客户端测试:
查询biao1:
mysql> select * from biao1;
+------+------+---------+
| id | name | address |
+------+------+---------+
| 1 | hehe | slave1 |
+------+------+---------+
1 row in set (0.00 sec)
mysql> select * from biao1;
+------+------+---------+
| id | name | address |
+------+------+---------+
| 3 | hehe | slave2 |
+------+------+---------+
1 row in set (0.00 sec)
mysql> select * from biao1;
+------+------+---------+
| id | name | address |
+------+------+---------+
| 2 | hehe | slave1 |
+------+------+---------+
1 row in set (0.00 sec)
mysql> select * from biao1;
+------+------+---------+
| id | name | address |
+------+------+---------+
| 3 | hehe | slave2 |
+------+------+---------+
1 row in set (0.01 sec)
查到记录,说明记录分别从两台从MySQL数据库读取
插入一条记录:
mysql> insert into biao1 values(4,'hehe','write_zhu');
Query OK, 1 row affected (0.01 sec)
mysql> select * from biao1;
+------+------+---------+
| id | name | address |
+------+------+---------+
| 3 | hehe | slave2 |
+------+------+---------+
1 row in set (0.01 sec)
mysql> select * from biao1;
+------+------+---------+
| id | name | address |
+------+------+---------+
| 2 | hehe | slave1 |
+------+------+---------+
1 row in set (0.01 sec)
没有查到记录,说明这条记录只写入主MySQL数据库中



