mysql-proxy实现mysql读写分离

发布时间:2020-06-03编辑:脚本学堂
本文介绍了mysql中使用mysql-proxy实现读写分离的方法,mysql读写分享的实例教程,感兴趣的朋友参考下。

环境:
192.168.100.210
192.168.100.104 
192.168.100.208
192.168.100.106

说明:
210,104作为mysql/ target=_blank class=infotextkey>mysql数据库.
208作为mysql-proxy.
106作为测试机器.

相关软件下载:
lua 
www.lua.org
mysql-proxy
http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/

1,在208上安装lua
 

复制代码 代码示例:

#tar zxvf  lua-5.1.4.tar.gz  -C  /usr/local
# cd /usr/local
#mv lua-5.1.4 lua
#cd lua
#make //make之后可以看到系统列表,下面的
命令:
#make linux//我这里是linux

#make install

2,安装mysql-proxy
 

复制代码 代码示例:
# tar -zxvf mysql-proxy-0.6.0-linux-rhas4-x86.tar.gz -C /usr/local/
# cd /usr/local/
# mv mysql-proxy-0.6.0-linux-rhas4-x86  mysql-proxy
# export PATH=$PATH:/usr/local/mysql-proxy/sbin/ 
#mysql-proxy --proxy-read-only-backendaddresses=192.168.100.210:3306
--proxy-backend-addresses=192.168.100.104:3306
--proxy-lua-script=/home2/mysql-proxy-0.6.0-linux-rhas4-x86/share/mysql-proxy/rw-splitting.lua &

3,在210,104上设置权限
 

复制代码 代码示例:
 mysql> grant all privileges on backup.* to
[email=backup@'%']backup@'%'[/email]
identified by 'shenxun';
 //给个账号backup,密码shenxun,读写操作的数据库是backup.

4,进行测试.
用106连接208的mysql-proxy:
 

复制代码 代码示例:
/usr/bin/mysql -u backup -pshenxun –P4040 –h 192.168.100.208 –D backup

创建一个表
 

复制代码 代码示例:
Create  table haha(id int,name char(6));

然后,到210和104上去看下数据库的情况,看到210是没有刚才写入的数据库表,而104是有刚才写入的数据表的.

把上面的命令修改为:
 

复制代码 代码示例:
mysql-proxy --proxy-backend-addresses=192.168.100.210:3306 --proxy-backend-addresses=192.168.100.104:3306 --proxy-lua-script=/home2/mysql-proxy-0.6.0-linux-rhas4-x86/share/mysql-proxy/rw-splitting.lua &

然后,在208上再重新建个表
 

复制代码 代码示例:
Create  table xixi(id int,name char(6));

此时再到210和104上去看下数据库的情况,发现2个数据库都有刚才写入的数据库表.

mysql数据库读写分离成功实现。