这篇文章算是mysql数据库主从配置的后续,因为配置proxy的前提是需要配置数据库的主从环境。如果不清楚主从数据库怎么配置的同学可以参考:http://www.jianshu.com/p/eed0ca8ba299
主从配置文章中的主数据库和从数据库的IP地址可能与这篇文章中的不一样,这是因为弄proxy前重装了虚拟机里面的系统,但基本思想是一样的,望谅解。
首先说说proxy的基本用途和原理:
主从同步是将master库中的数据同步到slave中,读写数据还是经过master库的,数据量少的时候还能负载的起,但当数据量比较大的时候,因为读写都由master库来执行,所以性能将会急剧下降,所以才会提到读写分离,在主从数据库中,slave只会从所指定的master同步数据,但一般不会被用来直接写入数据,因为这样的话将造成主从不同步的问题,而master数据库则是需要写入数据供slave库同步,所以,master库可以用来只写入数据用,而读取数据就使用slave库,这样就可以使用读写分离,从而优化数据库的读写性能,提高读写效率。
proxy+主从数据库概念图.png
从图中可以看到,SQL语句并不直接进入到master数据库或者slave数据库,而是进入到proxy,然后proxy判断这条语句是有关写的语句(包括insert、update、delete)还是读语句(select),当时写语句的时候,那么proxy将向master所在的服务器发出请求,同理,如果是读语句的时候,proxy将向slave所在的服务器发出请求。
首先是需要用到的数据库服务器IP地址和有关环境:
Master(主)服务器IP:192.168.189.128
Slave(从)服务器IP:192.168.189.129
Proxy服务器IP:192.168.189.130
操作系统:CentOS 6.9 64位
数据库:MySQL 5.6
读写分离是由lua实现的,即lua是基础组件,但听说新版的已经集成了lua,不知道是不是不再需要自己手动去安装的意思,反正不差那么一步
# yum -y install gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libmc rypt* libtool* flex* pkgconfig*
安装需要一段时间,在这段时间可以去下载proxy的tar包,这里用的是t