Fork me on GitHub

新博客地址:voidy's blog

基于Mysql-Proxy实现Mysql的主从复制以及读写分离(下)

Posted on 2015-04-02 17:09  尛鱼  阅读(1055)  评论(0编辑  收藏  举报

基于Mysql-Proxy实现Mysql的主从复制以及读写分离(下)

  昨天谈到了Mysql实现主从复制,但由于时间原因并未讲有关读写分离的实现,之所以有读写分离,是为了使数据库拥有双机热备功能,至于双机热备,特指基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国内使用较多,故得名双机热备,双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active-Active方式),主-备方式即指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态)。而双主机方式即指两种不同业务分别在两台服务器上互为主备状态(即Active-Standby和Standby-Active状态)。接下来开始使用Mysql-Proxy实现读写分离。

环境

  系统:CentOS6.5

  Master:172.16.19.2

  Slave:172.16.19.24

  mysql-proxy:172.16.19.14

  安装就不说了,基本都是yum install进行安装的。和昨天的一样(其实就是接着昨天的来~)。

读写分离的实现

  首先,在第三台服务器安装mysql-proxy:yum install mysql-proxy。

  然后修改配置文件:

 1 [mysql-proxy]
  2 daemon = true   #以后台守护进程方式启动
  3 pid-file = /var/run/mysql-proxy.pid
  4 log-file = /var/log/mysql-proxy.log
  5 log-level = debug  #设置日志级别为debug,可以在调试完成后改成info
  6 max-open-files = 1024
  7 plugins = admin,proxy
  8 user = mysql-proxy
  9 #
 10 #Proxy Configuration
 11 proxy-address = 0.0.0.0:3307    #指定mysql-proxy的监听地址
 12 #proxy-address = 172.16.19.24:4040
 13 #proxy-backend-addresses = localhost:3306  
 14 proxy-backend-addresses = 172.16.19.2:3306   #设置后台主服务器:主服务器,master可读写
 15 proxy-read-only-backend-addresses = 172.16.19.24:3306   #设置后台从服务器:从服务器,slave,只读
 16 proxy-lua-script = /usr/lib64/mysql-proxy/lua/rw-splitting.lua    #设置读写分离脚本路径,可在官网下载mysql-proxy包,解压后
 17 #proxy-skip-profiling = true
 18 #
 19 # Admin Configuration
 20 #admin-address = 0.0.0.0:4041
 21 admin-lua-script = /usr/lib64/mysql-proxy/lua/admin.lua  #设置管理后台lua脚本路径,改脚本默认没有要自动定义
 22 admin-username = root     #设置登录管理地址用户
 23 admin-password = 123456    #设置管理用户密码

   设置完成后,即可执行:service mysql-proxy start启动服务。 

  使用mysql -uroot -p -h172.16.19.14 --port=3307进入数据库查看或更改数据库。

  使用mysql -uroot -p -h172.16.19.14 --port=4041进入数据库管理数据库。

  若没有用户通过mysql-proxy连接到后端,则状态为unknown,否则的话为up。至此,mysql 的主从复制以及读写分离就实现了。

 

 

 

PS:本博客欢迎转发,但请注明博客地址及作者,因本人水平有限,若有不对之处,欢迎指出,谢谢~

  博客地址:http://www.cnblogs.com/voidy/

  博客新址:http://voidy.net

  <。)#)))≦