栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mysql读写分离

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mysql读写分离

+++++++++++++搭建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 
修改:

               amoeba            //修改
               123456        //修改


        1500
                master        //修改
                master        //修改
                slaves        //修改
                true

3)修改dbServer.xml配置文件
[root@localhost ~]# vim /usr/local/amoeba/conf/dbServers.xml 
修改:

                       
                        test            //修改用户为test        
                       
                        123.com        //修改密码
               

    ...部分省略....
                //修改服务名称为master
               
                       
                        192.168.1.200    //修改为主数据库服务器的IP
               

       

                    //修改服务名称为slave1
               
                       
                        192.168.1.201    //修改为从数据库服务器的IP    
               

       

                    //修改服务名称为slave2
               
                       
                        192.168.1.202    //修改为从数据库服务器的IP
               

       

                            //修改为    slaves
                                        1
                        slave1,slave2        //修改为    slave1,slave2
               

       

[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数据库中

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445966.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号