0

0

RHEL6.5下MySQL读写分离的实现

php中文网

php中文网

发布时间:2016-06-07 16:42:46

|

1089人浏览过

|

来源于php中文网

原创

使用4台RHEL6.5虚拟机,如图下所示。其中192.168.4.10、192.168.4.20分别作为MySQL主、从服务器,是整个服务的后端;另一台192.1

一、要求

1、配置两台MySQL服务器和一台代理服务器,实现MySQL代理的读写分离。

2、用户只需要访问MySQL代理服务器,实际的SQL查询、写入操作交给后台的2台MySQL服务器来完成。

3、其中Master服务器允许SQL查询、写入,Slave服务器只允许SQL查询。

二、方案

使用4台RHEL6.5虚拟机,如图下所示。其中192.168.4.10、192.168.4.20分别作为MySQL主、从服务器,是整个服务的后端;另一台192.168.4.30作为MySQL代理服务器,是直接面向客户的服务前端;客户机192.168.4.100用作访问测试。

RHEL6.5下MySQL读写分离的实现

对比两种方式的读写分离效果——

  • MySQL主从复制:客户机访问Master服务器来写数据库,客户机访问Slave服务 器来读数据库。这种情况下,需要客户端自行区分向何处写、从何处读。
  • MySQL主从复制+代理:客户机访问Proxy服务器,读、写请求交给Proxy识别,如果是写数据库操作则交给Master,如果是读数据库操作则交给Slave处理,具体由分配策略控制。这种情况下,无需客户端区分读、写目标,而是由Proxy服务器代劳了,从而降低了客户端程序的复杂度。
  • 以下是在mysql主从复制的基础上实现的,mysql主从复制部分请参见另一篇文章《MySQL主从复制》

    三、实现

    1、部署mysql-proxy代理服务器

    1)安装MySQL官方提供的mysql-proxy软件包

    MySQL官方提供了mysql-proxy的免安装版本,解压后即可使用。由于msyql-proxy使用了LUA脚本语言,因此需要提前安装好lua软件包(RHEL6镜像内已含)以确保其正常使用:

    [root@proxy ~]# yum -y install lua

    然后部署mysql-proxy软件包:

    [root@proxy 桌面]# tar zxf mysql-proxy-0.8.3-linux-rhel5-x86-64bit.tar.gz -C /usr/local/

    [root@proxy 桌面]# cd /usr/local/     

    [root@proxy local]# mv mysql-proxy-0.8.3-linux-rhel5-x86-64bit/ mysql-proxy  //将文件改短一点,方便访问

    切换到部署后的目录,确认相关目录、可执行程序、脚本。一般情况下,使用bin目录下的mysql-proxy脚本来启动代理服务:

    [root@proxy local]# cd mysql-proxy/

    [root@proxy mysql-proxy]# ls

    bin  include  lib  libexec  licenses  share

    [root@proxy mysql-proxy]# ls bin/ libexec/

    bin/:                                      //服务脚本目录

    mysql-binlog-dump  mysql-myisam-dump  mysql-proxy

     

    libexec/:                                    //可执行程序目录

    mysql-binlog-dump  mysql-myisam-dump  mysql-proxy

    2)准备读写分离的LUA策略脚本

    直接复制mysql-proxy提供的样例策略即可:

    [root@proxy mysql-proxy]# cp share/doc/mysql-proxy/rw-splitting.lua ./

    3)启动mysql-proxy代理服务

    主要命令选项:

        -P(大写):指定代理监听的IP地址、端口

        -r:指定读服务器的IP地址、端口

        -b:指定写服务器的IP地址、端口

        -s:指定lua脚本文件

        --keepalive:如果服务进程崩溃,尝试重启此进程

     

    [root@proxy mysql-proxy]# pwd

    /usr/local/mysql-proxy

    [root@proxy mysql-proxy]# bin/mysql-proxy -P 192.168.4.30:3306 \

    > -b 192.168.4.10:3306 \

    > -r 192.168.4.20:3306 \

    > -s rw-splitting.lua &

    [root@proxy mysql-proxy]# netstat -anpt | grep mysql  //确认监听状态

    tcp  0  0  192.168.4.30:3306 0.0.0.0:*  LISTEN      16119/mysql-proxy 

    对于客户端来说,这台代理主机192.168.4.30就相当于一台可读可写的MySQL数据库服务器了。

    为了每次开机启动mysql-proxy代理服务可以将上面的命令写到/etc/rc.local配置文件内:

     [root@proxy ~]# vim /etc/rc.local

     .. ..

     /usr/local/mysql-proxy/bin/mysql-proxy -P 192.168.4.30:3306 \

     -b 192.168.4.10:3306 \

     -r 192.168.4.20:3306 \

     -s rw-splitting.lua &

    2、测试通过mysql-proxy的读写分离

    1)在Master服务器上授权用户,允许其从192.168.4.0/24的客户机远程访问。

    mysql>  GRANT all ON *.* TO user02@'192.168.4.%' IDENTIFIED BY 'pwd123';

    Query OK, 0 rows affected (0.07 sec)

    因为此前已配置mysql库的主从同步,SLAVE上的用户授权会自动更新

    极品模板微商城订单系统
    极品模板微商城订单系统

    微商城订单管理系统是一款基于php+mysql开发的php订单管理系统,她的特点如下: 产品特色: 支持商品规格、订单短信提醒,订单提交限制,站外调用, 批量发货/导出,数据报表,物流轨迹、免签支付等。 1、高度开源:除核心授权文件外全部开源,二开方便。 2、分布式部署:支持分布式部署、支持数据库读写分离。 3、第三方存储:支持附件腾讯云、阿里云、七牛云存储

    下载

    2)从客户机上192.168.4.100访问Mysql数据库

    [root@client ~]# mysql -h192.168.4.30 -uuser02 -ppwd123

    ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.4.30' (113)

    出现上面这种情况,可以关闭代理的防火墙,或者添加一条允许访问3306端口的防火墙规则

    [root@proxy ~]# iptables -I INPUT -s 192.168.4.0/24 -p tcp --dport 3306 -j ACCEPT

    再次登录:

    [root@client ~]# mysql -h192.168.4.30 -uuser02 -ppwd123

    ... ...

    mysql>                    //表示登录成功

    mysql> CREATE DATABASE student;          //新建库

    Query OK, 1 row affected (0.10 sec)

    mysql> USE student;//切换到新建的库

    Database changed

    mysql> CREATE TABLE info( id int(4),name varchar(48));    //新建表

    Query OK, 0 rows affected (1.23 sec)

    mysql> INSERT INTO info VALUES(1,"hanmeimei"),(2,"lilei");  //插入2条表记录

    Query OK, 2 rows affected (0.18 sec)

    Records: 2  Duplicates: 0  Warnings: 0

    mysql> SELECT * FROM info;

    +------+-----------+

    | id  | name        |

    +------+-----------+

    |    1 | hanmeimei |

    |    2 | lilei            |

    +------+-----------+

    2 rows in set (0.01 sec)

    mysql> quit

    Bye

    3)在master和slave上确认客户端新建的表

    [root@client ~]# mysql -h192.168.4.10 -uuser02 -ppwd123

    mysql> USE student;

    mysql> SHOW TABLES;

    +-------------------+

    | Tables_in_student |

    +-------------------+

    | info                    |

    +-------------------+

    1 row in set (0.00 sec)

    mysql> SELECT * FROM info;

    +------+-----------+

    | id    | name      |

    +------+-----------+

    |    1  | hanmeimei |

    |    2  | lilei            |

    +------+-----------+

    2 rows in set (0.00 sec)

     

    [root@client ~]# mysql -h192.168.4.20 -uuser02 -ppwd123

    mysql> SELECT * FROM student.info;

    +------+-----------+

    | id  | name        |

    +------+-----------+

    |    1 | hanmeimei |

    |    2 | lilei            |

    +------+-----------+

    2 rows in set (0.00 sec)

    4)观察MySQL代理访问的网络连接

    在Proxy代理商可看到与MySQL读、写服务器的网络连接:

    [root@proxy mysql-proxy]# netstat -anpt | grep mysql

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    拼多多赚钱的5种方法 拼多多赚钱的5种方法
    拼多多赚钱的5种方法 拼多多赚钱的5种方法

    在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

    28

    2026.01.26

    edge浏览器怎样设置主页 edge浏览器自定义设置教程
    edge浏览器怎样设置主页 edge浏览器自定义设置教程

    在Edge浏览器中设置主页,请依次点击右上角“...”图标 > 设置 > 开始、主页和新建标签页。在“Microsoft Edge 启动时”选择“打开以下页面”,点击“添加新页面”并输入网址。若要使用主页按钮,需在“外观”设置中开启“显示主页按钮”并设定网址。

    8

    2026.01.26

    苹果官方查询网站 苹果手机正品激活查询入口
    苹果官方查询网站 苹果手机正品激活查询入口

    苹果官方查询网站主要通过 checkcoverage.apple.com/cn/zh/ 进行,可用于查询序列号(SN)对应的保修状态、激活日期及技术支持服务。此外,查找丢失设备请使用 iCloud.com/find,购买信息与物流可访问 Apple (中国大陆) 订单状态页面。

    31

    2026.01.26

    npd人格什么意思 npd人格有什么特征
    npd人格什么意思 npd人格有什么特征

    NPD(Narcissistic Personality Disorder)即自恋型人格障碍,是一种心理健康问题,特点是极度夸大自我重要性、需要过度赞美与关注,同时极度缺乏共情能力,背后常掩藏着低自尊和不安全感,影响人际关系、工作和生活,通常在青少年时期开始显现,需由专业人士诊断。

    3

    2026.01.26

    windows安全中心怎么关闭 windows安全中心怎么执行操作
    windows安全中心怎么关闭 windows安全中心怎么执行操作

    关闭Windows安全中心(Windows Defender)可通过系统设置暂时关闭,或使用组策略/注册表永久关闭。最简单的方法是:进入设置 > 隐私和安全性 > Windows安全中心 > 病毒和威胁防护 > 管理设置,将实时保护等选项关闭。

    5

    2026.01.26

    2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】
    2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】

    铁路12306提供起售时间查询、起售提醒、购票预填、候补购票及误购限时免费退票五项服务,并强调官方渠道唯一性与信息安全。

    35

    2026.01.26

    个人所得税税率表2026 个人所得税率最新税率表
    个人所得税税率表2026 个人所得税率最新税率表

    以工资薪金所得为例,应纳税额 = 应纳税所得额 × 税率 - 速算扣除数。应纳税所得额 = 月度收入 - 5000 元 - 专项扣除 - 专项附加扣除 - 依法确定的其他扣除。假设某员工月工资 10000 元,专项扣除 1000 元,专项附加扣除 2000 元,当月应纳税所得额为 10000 - 5000 - 1000 - 2000 = 2000 元,对应税率为 3%,速算扣除数为 0,则当月应纳税额为 2000×3% = 60 元。

    12

    2026.01.26

    oppo云服务官网登录入口 oppo云服务登录手机版
    oppo云服务官网登录入口 oppo云服务登录手机版

    oppo云服务https://cloud.oppo.com/可以在云端安全存储您的照片、视频、联系人、便签等重要数据。当您的手机数据意外丢失或者需要更换手机时,可以随时将这些存储在云端的数据快速恢复到手机中。

    40

    2026.01.26

    抖币充值官方网站 抖币性价比充值链接地址
    抖币充值官方网站 抖币性价比充值链接地址

    网页端充值步骤:打开浏览器,输入https://www.douyin.com,登录账号;点击右上角头像,选择“钱包”;进入“充值中心”,操作和APP端一致。注意:切勿通过第三方链接、二维码充值,谨防受骗

    7

    2026.01.26

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Uniapp从零开始实现新闻资讯应用
    Uniapp从零开始实现新闻资讯应用

    共67课时 | 9.4万人学习

    MySQL索引优化解决方案
    MySQL索引优化解决方案

    共23课时 | 2.1万人学习

    HTML 中文开发手册
    HTML 中文开发手册

    共0课时 | 0人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号