使用mysql-proxy代理实现msyql数据库读写分离

系统 1965 0

要实现读写分离,可以先看看如何实现mysql数据库主从:http://www.cnblogs.com/sustudy/p/4174189.html

mysql-proxy下载地址(要看好对应版本):http://dev.mysql.com/downloads/mysql-proxy/

读写分离实验环境:

  mysql-proxy服务器的IP地址:192.168.20.3

  主数据库的ip地址:192.168.20.4

  从数据库的ip地址:192.168.20.5

步骤如下:

  1、解压下载好的mysql-proxy的包

    tar -xzvf mysql-proxy-0.8.5-linux-rhel5-x86-32bit.tar.gz

  2、复制已经解压好的mysql-proxy的文件夹到/usr/loca/文件夹下

    cp -p mysql-proxy-0.8.5-linux-rhel5-x86-32bit mysql-proxy

  3、在/etc文件夹下创建msql-proxy的配置文件:mysql-proxy.cnf

    vi mysql-proxy.cnf(内容如下:)

    [mysql-proxy]

    admin-username = root############连接主从 数据库的用户名

    admin-password = 123456 ############ 连接主从数据库的 密码

    daemon = true ############ daemon进程运行

    keepalive = true ############ 保持连接(启动进程会有2个,一号进程用来监视二号进行,如果二号进程死掉自动重建,此参数在旧版本中无法使用)

    proxy-backend-addresses = 192.168.20.4:3306 ############ mysql主库(写)地址

    proxy-read-only-backend-addresses = 192.168.20.5:3306 ############ mysql从库(读)地址

    proxy-lua-script = /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua ############ 读写分离脚本

    admin-lua-script = /usr/local/mysql-proxy/share/doc/mysql-proxy/admin-sql.lua ############ admin脚本

    log-file = /usr/local/mysql-proxy/cn.log ############ mysql-proxy的日志

    log-level = debug

  4、配置环境变量,导入lua脚本和添加mysql-proxy的命令

    vi /etc/profile(增加以下内容)

    LUA_PATH="/usr/local/proxy-mysql/share/doc/mysql-proxy/?.lua"

    export LUA_PATH

    export PATH=$PATH:/usr/local/mysql-proxy/bin

    保存profile文件,让修改立即生效,可以输入命令:source /etc/profile

  5、开启mysql-proxy代理:

mysql-proxy --defaults-file=/etc/mysql-proxy.cnf>/usr/local/proxy-mysql/cn.log &

以上5个步骤顺利完成,就可以测试了。测试步骤如下:

  1、修改 /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua文件,快速开启分离。

    if not proxy.global.config.rwsplit then

            proxy.global.config.rwsplit = {

                    min_idle_connections = 1,   #修改最小连接为1

                    max_idle_connections = 2,   #修改最大连接为2,当终端超过2个,就会开启读写分离

                    is_debug = true            #debug为true

            }

    end

  3、实时查看/usr/local/mysql-proxy/cn.log。该日志记录着mysql-proxy的情况

    tail -f /usr/local/mysql-proxy/cn.log

  2、开启两个终端,连接代理192.168.20.3,有两个终端就会开启读写分离

    终端一连接:mysql -h192.168.20.3 -uroot -p123456 -P4040

    终端二连接:mysql -h192.168.20.3 -uroot -p123456 -P4040

    这里的用户名root和密码123456是主数据库和从数据库的密码

  4、对终端一进行读操作,对终端二进行写操作,进行多次数据库操作。

  5、此时cn.log就会有变动,就可以看出区别了。

 

该实验流程是建立在无任何错误的情况下,实际中遇到的问题,可以搜索引擎解决,然后,在进行下一步。

 

使用mysql-proxy代理实现msyql数据库读写分离


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论