MySQL读写分离

MySQL读写分离

配置安装JDK环境

[root@centos04 ~]# mount /dev/cdrom /mnt/       <!--挂载Linux光盘-->
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos04 ~]# rm -rf /etc/yum.repos.d/CentOS-*   <!--删除系统自带yum源-->
[root@centos04 ~]# mkdir /usr/src/jdk   <!--创建安装jdk目录-->
[root@centos04 ~]# cp /mnt/jdk-6u14-linux-x64.bin /usr/src/jdk/   
                      <!--复制jdk软件到/usr/src/jdk/目录-->
[root@centos04 ~]# cd /usr/src/jdk/
[root@centos04 jdk]# ./jdk-6u14-linux-x64.bin   <!--配置jdk及安装jdk-->
[root@centos04 jdk]# mv ./jdk1.6.0_14/ ./

[root@centos04 jdk]# rm -rf jdk1.6.0_14/
[root@centos04 ~]# chmod -R 755 /usr/src/jdk/   <!--设置jdk权限-->

安装amoeba服务器

[root@centos04 ~]# mkdir /usr/src/amoeba       <!--创建amoeba目录-->
[root@centos04 ~]# tar zxvf /mnt/amoeba-mysql-binary-2.2.0.tar.gz -C /usr/src/amoeba 
                   <!--解压缩amoeba压缩包-->
[root@centos04 ~]# chmod -R 755 /usr/src/amoeba/      <!--添加执行权限-->
[root@centos04 ~]# java -version         <!--查看java版本-->
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
[root@centos04 ~]# vim /etc/profile.d/java.sh   <!--配置环境变量加载jdk和amoeba-->
export JAVA_HOME=/usr/src/jdk/
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/src/amoeba/
export PATH=$PATH:$AMOEBA_HOME/bin
[root@centos04 ~]# source /etc/profile.d/java.sh   <!--刷新环境变量-->
[root@centos04 ~]# java -version        <!--再次查看java版本-->
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) 64-Bit Server VM (build 14.0-b16, mixed mode)

配置amoeba服务器

[root@centos01 ~]# mysql -uroot -ppwd@123          <!--主节点登录mysql数据库-->
mysql> grant all on *.* to 'bob'@'192.168.100.%' identified by 'pwd@123';  
               <!--配置amoeba登录mysql数据库读取和写入数据权限账户-->
[root@centos04 ~]# vim /usr/src/amoeba/conf/amoeba.xml<!--修改amoeba主配置文件-->
30                                         <property name="user">amoeba</property>  
               <!--将上面配置默认的“root”改为amoeba,这是客户端连接时使用的用户名-->
 31 
 32                                         <property name="password">pwd@123</property>
                 <!--“pwd@123”是用户名amoeba对应的密码-->
114                 <property name="LRUMapSize">1500</property>
115                 <property name="defaultPool">master</property>
116 
 <!--将下面两项中默认的“server1”分别改为“master”和“slaves”,如下:-->
117                 <property name="writePool">master</property>
118                 <property name="readPool">slaves</property>
119                 <property name="needParse">true</property>
[root@centos04 ~]# vim /usr/src/amoeba/conf/dbServers.xml    
              <!--将MySQL主从节点添加到amoeba中-->
26                         <property name="user">bob</property>
   <!--默认的“root”改为bob,这是amoeba连接时数据库时使用的用户名-->
28                         <property name="password">pwd@123</property>
<!--“将默认的“password”改为“pwd@123”,这是刚才在数据库上创建的用户密码-->
43         <dbServer name="master"  parent="abstractServer">
                  <!--将name值改为“master”-->
44                 <factoryConfig>
45                         <property name="ipAddress">192.168.100.10</property>
            <!--上面的IP地址192.168.100.10,为主服务器的IP地址-->
46                 </factoryConfig>
47         </dbServer>
48 
         <!--将下面的name值改为“slave01”,如下所示-->
49         <dbServer name="slave01"  parent="abstractServer">
50                 <factoryConfig>
51                         <property name="ipAddress">192.168.100.20</property>
           <!--上面的IP地址192.168.100.20,为从服务器的IP地址-->
52                 </factoryConfig>
53         </dbServer>
54  
    <!--将下面的name值改为“slave02”,如下所示-->
55         <dbServer name="slave02"  parent="abstractServer">
56                 <factoryConfig>
57                         <property name="ipAddress">192.168.100.30</property>
     <!--上面的IP地址192.168.100.30,为从服务器的IP地址-->
58                 </factoryConfig>
59         </dbServer>
60 
     <!--将下面的name值改为“slaves”,如下所示-->    
61         <dbServer name="slaves" virtual="true">
62                 <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
63                         <property name="loadbalance">1</property>
64 
   <!--
将下面默认的内容改为“slave1,slave2”,如下所示:
这里引用的是上面两个定义的slave1/2的配置项
        -->
65                         <property name="poolNames">server01,server02</property>
66                 </poolConfig>
67         </dbServer>
[root@centos04 ~]# /usr/src/amoeba/bin/amoeba start&   
                  <!--启动amoeba服务,运行在后台-->
[root@centos04 ~]# netstat -anptu | grep 8066   <!--监听amoeba服务否成功运行-->
tcp6       0      0 :::8066                 :::*                    LISTEN      3153/java           
[root@centos04 ~]# netstat -anptu | grep java   <!--监听java是否成功运行-->
tcp6       0      0 :::8066                 :::*                    LISTEN      3153/java           
tcp6       0      0 127.0.0.1:54084         :::*                    LISTEN      3153/java           
tcp6       0      0 192.168.100.40:60980    192.168.100.30:3306     ESTABLISHED 3153/java           
tcp6       0      0 192.168.100.40:44082    192.168.100.10:3306     ESTABLISHED 3153/java           
tcp6       0      0 192.168.100.40:53840    192.168.100.20:3306     ESTABLISHED 3153/java  

客户端验证

[root@centos05 ~]# mount /dev/cdrom /mnt/    <!--挂载操作系统光盘-->
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos05 ~]# rm -rf /etc/yum.repos.d/CentOS-*    <!--删除系统自动yum源-->
[root@centos05 ~]# yum -y install mysql     <!--安装mysql客户端-->
[root@centos05 ~]# mysql -uamoeba -ppwd@123 -h192.168.100.40 -P8066    
                <!--客户端测试连接amoeba服务器-->
MySQL [(none)]> create database benet;     
           <!--客户端通过amoeba服务器在MySQL创建数据库 -->
[root@centos01 ~]# mysql -uroot -ppwd@123     
                <!--在主节点从节点服务器查看是否创建成功-->
mysql> show databases;     <!--查看数据库-->
+--------------------+
| Database           |
+--------------------+
| information_schema |
| benet              |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)
MySQL [(none)]> create table student (姓名 char(10),性别 char(3),年龄 char(4),电话
char(13),primary key(电话) );     <!--客户端通过amoeba服务器在MySQL创建表-->
MySQL [(none)]> use benet;     <!--切换到benet数据库-->
MySQL [benet]> insert into benet.student value ('马云','男','40','110120119114');<!--表中插入数据-->
[root@centos02 ~]# mysql -uroot -ppwd@123    <!--从节点连接数据库-->
mysql> select * from benet.student;      <!--从节点查看表中数据-->
+--------+--------+--------+--------------+
| 姓名   | 性别   | 年龄   | 电话         |
+--------+--------+--------+--------------+
| 马云   || 40     | 110120119114 |
+--------+--------+--------+--------------+

9)模拟从节点故障,客户端通过amoeba服务器继续写入数据
[root@centos02 ~]# mysql -uroot -ppwd@123    <!--从节点连接数据库-->
mysql> slave stop;    <!--模拟从节点故障--> 
[root@centos03 ~]# mysql -uroot -ppwd@123     <!--从节点连接数据库-->
mysql> slave stop;    <!--模拟从节点故障-->
[root@centos05 ~]# mysql -uamoeba -ppwd@123 -h192.168.100.40 -P8066    
                     <!--客户端连接amoeba服务器-->
MySQL [(none)]> use benet;    <!--切换到benet数据库-->
MySQL [benet]> insert into benet.student value ('彤彤','女','18','22222222222');   
               <!--客户端通过amoeba服务器继续写入数据-->
[root@centos01 ~]# mysql -uroot -ppwd@123    <!--主节点连接数据库-->
mysql> select * from benet.student;    <!--查看benet数据库中的student表-->
+--------+--------+--------+--------------+
| 姓名   | 性别   | 年龄   | 电话         |
+--------+--------+--------+--------------+
| 马云   || 40     | 110120119114 |
| 彤彤   || 18     | 22222222222  |
+--------+--------+--------+--------------+

[root@centos02 ~]# mysql -uroot -ppwd@123    <!--从节点连接数据库-->
mysql> select * from benet.student;     <!--查看benet数据库中的student表-->
+--------+--------+--------+--------------+
| 姓名   | 性别   | 年龄   | 电话         |
+--------+--------+--------+--------------+
| 马云   || 40     | 110120119114 |
+--------+--------+--------+--------------+

[root@centos05 ~]# mysql -uamoeba -ppwd@123 -h192.168.100.40 -P8066
MySQL [benet]> select * from benet.student;          <!--查看benet数据库中的student表-->
+--------+--------+--------+--------------+
| 姓名   | 性别   | 年龄   | 电话         |
+--------+--------+--------+--------------+
| 马云   || 40     | 110120119114 |
+--------+--------+--------+--------------+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值