mysql读写分离

 

 

 

准备:3台Cetnos服务器,如果开不了3台,2台也可以

       角色分配:

MySQL-主:10.0.0.14

                       MySQL-从:10.0.0.15

                       Amoeba:10.0.0.16

1.   分别在两台服务器上安装mysql

#yum -y install mysql mysql-server

 

2.   master主机的配置

#vim /etc/my.cnf

[mysqld]

server-id=1

log-bin=mysql-bin

 

#service mysqld restart

#service iptables stop

#setenforce 0

 

 

#mysql -uroot

 

#grant replication slave on *.* to 'tom'@'%' identified by '123';

 

flush privileges;

 

mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |      319 |              |                  |
+------------------+----------+--------------+------------------+

  

1.   slave主机的配置

#vim /etc/my.cnf

[mysqld]

server-id=2

relay-log=mysql-relay

 

 

重启mysql

#service mysqld restart

#service iptables stop

#setenforce 0

#mysql -uroot
mysql> stop slave;
mysql> change master to
    -> master_host='10.0.0.14',
    -> master_user='tom',
    -> master_password='123',
    -> master_log_file='mysql-bin.000003',
-> master_log_pos=319;
mysql> start slave;
mysql> show slave status \G;

  

 

查看两个进程状态是否为YES,都是YES说明配置成功

  给两台mysql服务器上给Amoeba服务器授权一个可以操作读写的用户

注意两个MySQL服务器都要执行下面的授权命令,要不Amoeba没有在mysql上的读写权限会报错

mysql>grant all on *.* to ‘amoeba’@’%’ identified by ‘123’;

mysql>flush privileges;

 

1.   安装JDK环境

上传安装包JDK1.6到服务器并安装

cd /usr/local

 

rz  jdk-6u14-linux-x64.bin

#chmod +x jdk-6u14-linux-x64.bin

# ./jdk-6u14-linux-x64.bin

执行安装包后,下面一直按回车就可以!

中间输入yes

更改jdk安装目录的名字

mv  jdk1.6.0_14   jdk1.6

2.   修改环境变量

配置环境变量

vim /etc/profile

在文件末尾添加以下内容

export AMOEBA=/usr/local/amoeba

export JAVA_HOME=/usr/local/jdk1.6

export PATH=$PATH:$JAVA_HOME/bin:$AMOEBA/bin

 

使新加的变量生效

source /etc/profile

 

3.   上传Amoeba安装包到服务器

#rz    amoeba-mysql-binary-2.2.0.tar.gz

4.   为Amoeba创建安装目录

#mkdir /usr/local/amoeba

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

 

5.   配置文件dbServers.xml:

vim /usr/loca/amoeba/conf/dbServers.xml

 

你刚刚在主从授权的账户

 

 

 

 

6.   编辑amoeba.xml

vim /usr/local/amoeba/amoeba.xml

 

# 提供客户端登录amoeba时需要使用的账号

 

 

 

 

 7.   启动amoeba

[root@localhost conf]# vim amoeba.xml 
[root@localhost conf]# /usr/local/amoeba/bin/amoeba start
log4j:WARN log4j config load completed from file:/usr/local/amoeba/conf/log4j.xml
2019-10-23 22:36:39,103 INFO  context.MysqlRuntimeContext - Amoeba for Mysql current versoin=5.1.45-mysql-amoeba-proxy-2.2.0
log4j:WARN ip access config load completed from file:/usr/local/amoeba/conf/access_list.conf
2019-10-23 22:36:39,365 INFO  net.ServerableConnectionManager - Amoeba for Mysql listening on 0.0.0.0/0.0.0.0:8066.
2019-10-23 22:36:39,369 INFO  net.ServerableConnectionManager - Amoeba Monitor Server listening on /127.0.0.1:65242.

 

8. 测试

  1. #在开启一个窗口登陆登录amoeba 测试读写分离效果

          yum -y install mysql

        2.创建数据库wg

  

 

 

   

 

   3.插入两条测试数据

  

 

   4.停止mysql从的同步

  

 

  5.在amoeba上再插入两条数据

  

 

      6.在amoeba上查看数据,发现只有1,2没有新的3,4数据

  

 

  7.切换到mysql主上查看,主上可以查看到所有的新数据

   

 

  8.然后在切换mysql从上查看数据。这里只有1,2

  

 

 至此验证完毕,MYSQL主有新的数据,说明现在数据是往MYSQL主上写数据

 然后amoeba查看数据内容和MYSQL从一致,说明数据是往从上读数据,读写分离配置完毕

 

 

  

posted @ 2019-12-19 13:47  Armored-forces  阅读(144)  评论(0)    收藏  举报