博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql-proxy win7 下实现读写分离
阅读量:6148 次
发布时间:2019-06-21

本文共 2416 字,大约阅读时间需要 8 分钟。

hot3.png

,接下来,使用mysql-proxy进行读写分离。

 

1、环境:

    局域网内有三台电脑,使用xampp开发,所以:

    master :

        ip: 10.0.50.195 ; mysql: 5.3.7 ; 

    slave : 

        ip: 10.0.50.162 ; mysql: 5.3.7

    mysql-proxy : 

        ip: 10.0.50.206 ; mysql: 5.3.7

2、读写分离

    首先,分别登录master,slave服务器,进入mysql,创建

            mysql> grant all on *.* to 'proxy2'@'%' identified by '123456';

    创建帐户给mysql-proxy链接使用。

 

    2.1、上网下载mysql-proxy安装包,解压后目录:

        173822_UCfE_2715471.png

    2.2、为mysql-proxy建立配置文件

        如,在 /mysql-proxy/bin/ 下创建新配置文件 mysql-proxy.conf ,内容:

        180454_7oBk_2715471.png

        脚本参数详解:

        ==============================================

        admin-username=proxy2   //定义内部管理服务器账号

        admin-password=123456  //定义内部管理服务器密码
        proxy-read-only-backend-addresses=10.0.50.162:3306 //定义后端只读从服务器地址
        proxy-backend-addresses=10.0.50.195:3306 //定义后端主服务器地址
        admin-lua-script=/mysql-proxy/lib/mysql-proxy/lua/admin.lua //定义lua管理脚本路径
        proxy-lua-script=/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua //定义lua读写分离脚本路径

        log-file=/mysql-proxy/log/mysql-proxy.log //定义log日志文件路径,没有就创建

        log-level=warning //定义log日志级别,由高到低分别有(error|warning|info|message|debug)

        keepalive //使进程在异常关闭后能够自动恢复

        ==============================================

 

    2.3、修改读写分离脚本rw-splitting.lua

        文件在/mysql-proxy/share/doc/mysql-proxy/下,修改内容:

        proxy.global.config.rwsplit = {
            min_idle_connections = 1, //默认为4
            max_idle_connections = 1, //默认为8
            is_debug = false
        }

        修改完成后,启动mysql-proxy

        mysql-proxy --defaults-file=C:/mysql-proxy/bin/mysql-proxy.conf

        175551_79II_2715471.png

        注意,mysql-proxy默认启动的是4040端口。

    2.4、测试读写分离效果

        2.4.1、读写分离的数据库连接用户,在上面已经创建好了,若没有再建一次

            mysql> grant all on *.* to 'proxy2'@'%' identified by '123456';

        2.4.2、为了清晰看到读写分离效果,暂时关闭mysql主从复制功能

            登录slave服务器,进入mysql,执行

            mysql> stop slave;

        2.4.3、在mysql-proxy服务器10.0.50.206,连接mysql-proxy

        mysql -uproxy2 -p123456 -P4040 -h10.0.50.206

        181337_FMOn_2715471.png

        往master_slave数据库的users表里,插入数据。

        insert into users (name) values ('cc')

        进入master服务器查询,有该数据:

        181734_h8gz_2715471.png

        进入slave服务器查询,没有该数据:

        181803_BKVg_2715471.png

        进入mysql-proxy服务器查询,没有该数据:

        181803_BKVg_2715471.png

        则,可知,数据插入master了,由于读操作查询slave,所已也没有。

        进入slave服务器,执行:mysql> start slave;

        则,slave数据会同步,cc数据就进来了:

        182816_W61o_2715471.png

        进入mysql-proxy服务器查询,也有该数据:

        182902_cZdo_2715471.png

3、客服端代码

<?php

$mysqli = mysqli_init();
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2);//设置超时时间

//连接的是proxy

$mysqli->real_connect('10.0.50.206:4040', 'proxy2', '123456', 'master_slave');

//$sql = "insert into users(`name`) values('cc2')";

//$sql = "update users set name = 'cc22' where name = 'cc2'";
//$rst = $mysqli->query($sql);
//var_dump($rst);

$sql = "select * from users where id=2";

$result = $mysqli->query($sql);
#依次获取字段的信息
while($row = $result->fetch_assoc())
{
    var_dump($row);
}
?>

转载于:https://my.oschina.net/ganfanghua/blog/1502975

你可能感兴趣的文章
互联网+智慧城市 开启智慧生活
查看>>
藏在高端智能手机芯片里的“外交官”:射频前端
查看>>
高盛AI生态报告:美国仍是主导,中国正高速成长
查看>>
云存储使存储容量前所未有,起点是达PB级
查看>>
哈尔滨工业大学校园网运营:开放兼容,灵活认证
查看>>
土耳其重大数据泄露事件 数据库安全受关注
查看>>
工控安全要避开传统IT安全思路的几个“暗坑”
查看>>
别轻易说取代:容器不会取代虚拟机
查看>>
迈克菲报告指出网络威胁情报共享的阻碍
查看>>
GeekPwn黑客选手任意操纵智能烤箱 智能家居存隐患
查看>>
PHP开发:使用PHP抓取百万知乎用户以及知识点札记
查看>>
本杰明·富兰克林会怎样学习编程?
查看>>
Handler、Looper与MessageQueue源码分析
查看>>
深度学习如何将个性化引入互联网
查看>>
在人才竞争上,国内明星公司都使用哪些手段抢 AI 人才
查看>>
Android带你解析ScrollView–仿QQ空间标题栏渐变
查看>>
Facebook进行无线宽带试验 频谱利用效率惊人
查看>>
《企业级ios应用开发实战》一3.7 本章小结
查看>>
英日科学家研发石墨烯传感器,可检测微量空气污染
查看>>
SOHO 3Q众包佣金上调到15% 移动办公掀热潮
查看>>