MySQL读写分离

来源:互联网 发布:linux vi怎么删除 编辑:程序博客网 时间:2024/05/16 06:06

任务:在web1连接mysql-proxy,读取数据时访问slave,改写数据时访问master(master及slave节点已配置好了主从复制)

1.

web1:192.168.183.111

master:192.168.183.201

slave:192.168.183.202

2.

(1)下载mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz

tar -zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
 mv mysql-proxy-0.8.5-Linux-glibc2.3-x86-64bit/ /usr/local/mysql-proxy
cd /usr/local/mysql-proxy
mkdir lua   #创建脚本存放目录
mkdir logs   #创建日志目录
cp  share/doc/mysql-proxy/rw-splitting.lua ./lua   #复制读写分离配置文件
cp share/doc/mysql-proxy/admin-sql.lua ./lua   #复制管理脚本
(2)vi /etc/mysql-proxy.cnf   #创建配置文件
[mysql-proxy]
user=root
admin-username=myproxy
admin-password=123456
proxy-address=127.0.0.1:3306
proxy-read-only-backend-addresses=192.168.183.202
proxy-backend-addresses=192.168.183.201
proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua
admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log
log-level=info

(3)chmod 660 /etc/mysql-proxy.cnf
(4)vi /usr/local/mysql-proxy/lua/rw-splitting.lua
if not proxy.global.config.rwsplit then
 proxy.global.config.rwsplit = {
  min_idle_connections = 1, #默认超过4个连接数时,才开始读写分离,改为1
  max_idle_connections = 1, #默认8,改为1
  is_debug = false
 }
end
(5)/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/etc/mysql-proxy.cnf --daemon #启动mysql-proxy
            netstat -tupln | grep  3306   #检查是否已经启动
(6)在mysql-master和masql-slave上授权给mysql-proxy 
mysql>grant all on *.* to 'myproxy'@'192.168.183.%' identified by '123456';
3.测试