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. 测试
- #在开启一个窗口登陆登录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从一致,说明数据是往从上读数据,读写分离配置完毕。

浙公网安备 33010602011771号