一,mysql proxy是什么,干什么用的 MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负 载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。当然,这样proxy机器可能成为单点失效,但完全可以使用多个proxy机器做为冗余,在应用服务器的连接池配置中配置到多 个proxy的连接参数即可。
mysql replication 数据同步 上图中,web到底连接那个数据库,这个要程序员自己写的代友来决定的,现在是二台mysql服务器,如果有多台或者是N台呢,靠用php代码来管理连接数据库,就很郁闷了。 mysql proxy 图示 mysql proxy就很好解决了这个问题,对于程序端而言,web端的请求,只要到mysql proxy的连接池就OK了,剩下的工作就交给mysql proxy了。对于程序代码管理来说就简单多了。个人觉得这一点最值得借用的了。 二,mysql proxy的安装 我在安装mysql proxy的时候,提示要安装lua,其他的没有什么提示,不过我在网上看到好多要装这个,那个。 那些东西,我都已经装过了,装系统的时候,就自带的装了。 a,安装pkg-config Ubuntu安装: apt-get install pkg-config centos安装:yum install pkg-config archlinux安装:pacman -S pkg-config 如果你要手动装,自己下 b,安装libevent c,安装glib d,安装lua 怎么安装同a e,安装mysql在这儿不多说了,一搜网上都是 f,二进制包mysql proxy wget http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/mysql-proxy-0.6.0-linux-rhas4-x86.tar.gz #解压到mysql下面,因为这个东西可以看成是mysql的一个插件了。 tar zxvf mysql-proxy-0.6.0-linux-rhas4-x86.tar.gz -C /usr/local/mysql mv /usr/local/mysql/mysql-proxy-0.6.0-linux-rhas4-x86 /usr/local/mysql/mysql_proxy cd /usr/local/mysql/mysql_proxy/sbin/
echo $PATH cp mysql-proxy /usr/sbin #加到环境变成里面去 查看一下是否安装成功
[root@BlackGhost sbin]# mysql-proxy --help
Help Options:
Application Options: 三,启动mysql proxy #注意:LUA_PATH="/usr/local/mysql/mysql-proxy/share/mysql-proxy/*.lua" 启动前,增加一下LUA的环境变量,不然用mysql proxy启动mysql时,会报找不到lua,会报以下错误
[root@BlackGhost share]# mysql -u root -h 127.0.0.1 -P 8888 mysql-proxy --proxy-address=127.0.0.1:8888 --proxy-read-only-backend-addresses=192.168.1.75:3306 --proxy-backend-addresses=192.168.1.91:3306 --proxy-lua-script=/usr/local/mysql/mysql_proxy/share/mysql-proxy/rw-splitting.lua & [root@BlackGhost sbin]# ps -e|grep mysql-proxy 15804 pts/1 00:00:00 mysql-proxy 四,测试mysql proxy 1,在192.168.1.75的test数据库中,建一个test表,结构一样 2,在192.168.1.91的test数据库中,建一个test表,结构一样 mysql -u root -h 127.0.0.1 -P 8888 #利用连接池,进入数据库 use test INSERT INTO `test` ( `name`, `sex`) VALUES ('tank', 1) 你会发现这条数据会出现在192.168.1.91的mysql的数据库中。 (责任编辑:IT) |