读写分离

2018-09-26  本文已影响0人  ivan_cq

数据库读写分离的配置
(一).在server1和server2上做主从复制
server1是master,server2是slave
(二).在server3上做mysql-proxy(调度器)
解压proxy数据包,并将解压后的目录放在/usr/local下
tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
mv mysql-proxy-0.8.5-linux-el6-x86-64bit /usr/local/mysql-proxy
建立目录存放读写分离的配置文件和日志
cd /usr/local/mysql-proxy/
mkdir conf
mkdir logs


 vim mysql-proxy.conf  mysql-proxy --help-all   
[mysql-proxy]
user=root                               # proxy运行的用户身份
proxy-address=0.0.0.0:3306              # proxy监听本机所有接口
proxy-backend-addresses=172.25.1.1:3306              # 后端master(读写)主机
proxy-read-only-backend-addresses=172.25.1.2:3306    # 后端slave(读)主机
proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua    # lua脚本所在的位置
log-level=debug     
daemon=true
keepalive=true

将mysql-proxy的二进制命令放进系统环境变量中

vim ~/.bash_profile
/usr/local/mysql-proxy/bin
source ~/.bash_profile

实现读写分离是有lua脚本实现的,现在mysql-proxy里面已经集成,无需再安装

cd /usr/local/mysql-proxy/share/doc/mysql-proxy
vim rw-splitting.lua   # 修改数据库发生读写分离时的最大最小值
mysql-proxy --default-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf

在server1(master)上对某个用户授读和插入权限

grant all  on *.* to root@'%' identified by 'Hellojay123+';

在另外一台主机上通过调度器server3连接数据库
在server1和server2上安装连接查看 yum install lsof lsof -i:3306 (3306是数据库的端口)



通过外界连接第三次数据库时发生读写分离,此时插入数据是向master中插入数据,读是在slave上.
第三次连接数据库时发生读写分离,读数据在server2上,写数据在server1上:



向数据库中写入数据:

上一篇下一篇

猜你喜欢

热点阅读