linux下mycat读写分离的配置

2023-10-29

linux下mycat读写分离的配置

  为什么要配置读写分离,我想我就不需要再赘述了,那么在mycat下如何进行读写分离的配置,配置之后的实际效率又如何呢?我上午根据文档捣鼓和测试了一下,这里做一下记录:

  最开始,我们还是要配置mysql本身的主从复制。

  首先,配置主服务器:

  1.编辑数据库配置文件,/etc/my.cnf

  在[mysqld]下加入代码:

log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
binlog-do-db=db1
binlog_ignore_db=mysql

  server-id 用于区分各自服务器,需要全局唯一。

  binlog-ignore_db为忽略的库,即不复制该项设置的库。

  binlog-do-db为需要复制的数据库,如果不要,则为复制除了binlog-ignore_db设置的库之外的所有库

  2.重启mysql:

service mysqld restart

  3.登录mysql: mysql -uroot -p

  可以为slave端单独建立一个账户,方便权限管理,然后把这个账户的权限赋予slave端: 

mysql>CREATE USER 'user'@ 'X.X.X.X' IDENTIFIED BY 'XXXXXX';
mysql>GRANT REPLICATION SLAVE ON *.* TO 'user'@'X.X.X.X' IDENTIFIED BY 'XXXXXX';

  X.X.X.X为slave端的IP地址

  4.防止在复制期间,数据库有新数据写入导致数据不同步:  

mysql>FLUSH TABLES WITH READ LOCK;

  5.把数据库导出并传送到从服务器端:

#mysqldump -u root -pXXXXXX --all-databases  --lock-tables=false  -- > /root/all.sql
#scp /root/all.sql root@X.X.X.X:/root

  X.X.X.X为从服务器IP地址。

  6.进入主服务器数据库查看并记录状态,待会儿会用到: 

mysql>SHOW MASTER STATUS\G;

  记录File和position

  7.解锁数据表 

mysql>UNLOCK TABLES;

  然后配置从服务器:

  1.登录从服务器,导入主服务器的数据库: 

#mysql -u root -p123456 < /root/all.sql

  2.编辑/etc/my.cnf,在[mysqld]下加入: 

server-id=11        //服务Id,注意要和master的server-id不一样
log-bin=mysql-bin
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
sync_master_info=1
sync_relay_log=1
sync_relay_log_info=1

  3.重启数据库并登录,执行下面的命令 

mysql>CHANGE MASTER TO
MASTER_HOST='X.X.X.X',            //主服务器的ip地址
MASTER_USER='user',               //刚才在主服务器创建的账号和密码
MASTER_PASSWORD='XXXXXX',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000001', //刚才主服务器的file
MASTER_LOG_POS=120,        //主服务器的position
MASTER_CONNECT_RETRY=10;

  4.启动slave进程:

mysql>START SLAVE;

  如果没有报错,应该就设置好了。

  小小的优化方案:

  虽然MyISAM引擎不支持事务处理和行级锁,但是它的查询效率相比innoDB要好的多,而作为从数据库,并不需要事务处理和行级锁,所以建议把客户端的表重新删除并建立为InnoDB。

  启动mycat的读写分离:

   配置schema.xml文件: 

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
                writeType="0" dbType="mysql" dbDriver="native">
    <heartbeat>select user()</heartbeat>
    <!-- can have multi write hosts -->
    <writeHost host="hostM1" url="localhost:3306" user="root"
                        password="XXXXXX">
        <!-- can have multi read hosts -->
        <readHost host="hostS1" url="X.X.X.X:3306" user="user" password="XXXXXX" />
    </writeHost>
</dataHost>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux下mycat读写分离的配置 的相关文章

随机推荐

  • 规则引擎Drools使用 第十四篇 Spring整合Drools

    使用Spring管理整合drools 首先需要引入依赖 然后配置spring文件 引入依赖
  • 基于stm32F103C8T6的智能门禁(毕业设计)

    刷卡 分享一期 RC522刷卡模块做的门禁系统 上面是视频呈现 功能文字说明 拓展空间非常大 识别卡号以及卡类并显示 刷管理卡 按下按键 提示刷卡录入 刷未录入的卡即可录入 刷用户卡 按下按键 提示刷卡录入 刷未录入的卡即可录入 再次刷卡
  • 【Cesium入门】一、Cesium安装部署运行

    1 介绍 CesiumJS是一个用于Web上3D地图的JavaScript库 开发者通过Cesium 实现无插件的创建三维球 Cesium通过WebGL技术实现图形的硬件加速 并且跨平台 跨浏览器 2 Cesium项目下载 1 在官网下载压
  • java arraylist<>_Java ArrayList

    Java ArrayList的构造方法和方法 Constructor Summary Constructors ConstructorDescription Constructs an empty list with an initial
  • STM32+AIR800关于温湿度采集上传阿里云以及进行云端下发指令简单的控制

    一 主要功能实现 1 STM32采集温湿度上传至阿里云 进行云端显示 2 云端下发指令控制STM32的LED亮灭 直接控制STM32 A 的LED亮灭 以及设置定时时间自动打开和关闭LED 3 云端下发指令通过NRF24L01间接控制第二个
  • Qt学习笔记:自定义窗体的移动+控件图标

    在这里首先感谢刘大师的作品 Qt编写通用主界面导航 开源 贴上演示 本博客主要是研究了刘大师的作品然后自己总结 做点笔记 不喜勿喷 废话不多说 先贴出代码解析一下 AppInit Instance gt start 单例模式 Instanc
  • sublime的代码错误提示 挺好!后面啥问题怎么显示那个结果???

    sublime的代码错误提示 挺好 后面啥问题怎么显示那个结果 两套软件运行一样的代码结果还不一样 code blocks 每次运行还不一样的
  • 华为swot分析2020_【分析】鸿蒙2.0要来?华为开发者大会2020时间确认!

    昨天晚上九点半 华为终端官方微博正式宣布 将在2020年9月1 0日至 9 月12日正式举办华为开发者大会 HDC2020 这次大会将在广东东莞 松山湖举行 关于华为开发者大会我这里再简单讲讲 这是华为面向信息与通信领域全球开发者大会的年度
  • odoo部署极简3分钟,浏览器编程

    本篇文章将给各位小伙伴们来带重大福利 使用odoo镜像搭建一套完整的开发环境 3分钟就能让你在本地启动odoo并开发程序 不需要你安装python 不需要你安装pycharm 不需要你安装数据库 甚至都不需要你clone odoo代码 对你
  • 石墨文档,幕布,Effie,开箱评论者写出好评或差评之前的选择……

    拿着鸡蛋换石头这样的故事 多是出现在笑话大全里 想到这个画面让人觉得交易中买家脑子似乎坏掉了 笑话揭露了不公平 可在这商贾云集的当下 不对等的交易却屡见不鲜 当偶然成为了小概率 继而转变成潜移默化之后 买东西就成了一场不明就里的 押宝 谁都
  • sybase :数据库不能打开的解决办法(状态装载或可疑)

    平台资料 操作系统平台 Windows 2000 5 00 2195 Service Pack 4 数据库平台 Sysbase 12 5 server db jc database db text db jd db jh db app 现象
  • python中strip()函数的详解

    一 背景 最近对于字符串处理的过程中对strip 函数的功能不是很了解 此篇博客就对strip 函数进行解读 strip函数的解释 就字面上的意思就是 返回删除前导和尾随空格的字符串副本 如果给定了chars而不是None 则删除chars
  • 高德地图的测试key_获取高德地图key

    概述 高德地图key的设置位于系统 APP iPhone App 设置 SDK设置中 它主要用于定位 如门店系统中 开启定位 可以从APP上看到距离最近的门店 定位功能可实现 但在后台中无配置组件 如要在APP中使用定位功能 请联系响站技术
  • 测试开发 -- python实现dubbo接口的调用

    由于公司使用基于Java语言的 Dubbo技术栈 而本人对Python技术栈更为熟悉 为了使不懂JAVA代码的同学也能进行Dubbo接口层的测试 总结一个通过python实现dubbo接口调用的实现方案 一 实现原理 根据Dubbo官方文档
  • 乱糟糟的YOLOv8-detect和pose训练自己的数据集

    时代在进步 yolo在进步 我还在踏步 v8我浅搞了一下detect和pose 记录一下 我还是要吐槽一下 为啥子这个模型就放在了这个文件深处 如图 以下教程只应用于直接应用yolov8 不修改 我之前搞v7的环境 直接 pip insta
  • vs2017项目配置

    右击项目属性 一 常规配置 可以选择windos SDK版本 平台工具集 编译过程中一些编译工具的选择 输出目录 编译生成文件所在路径 配置类型 选择是动态库 静态库 还是执行程序 二 调试配置 工作目录 项目所在路径 比如动态链接库调用
  • Ubuntu-向日葵开机自启

    向日葵官方下载网址 向日葵远程控制app官方下载 贝锐向日葵官网 安装好向日葵后 打开终端 输入命令 查看软件信息 dpkg L sunloginclient 看到向日葵的安装路径是 路径是 usr local sunlogin bin s
  • Apache Struts2远程代码执行漏洞(CVE-2021-31805)安全通告

    1 事件描述 监测发现 开源应用框架Apache Struts存在远程代码执行漏洞 CVE 2021 31805 攻击者可构造恶意的OGNL表达式触发漏洞 实现远程代码执行 受影响版本为Apache Struts 2 0 0 2 5 29
  • Qt中两个窗口相互操作

    Qt中两个窗口相互操作 举一个栗子就是两个窗口相互关闭 窗口1中的pushbutton关闭窗口2 窗口2中的pushbutton关闭窗口1 Qt中的窗口都是一个一个的类 所以最开始就想到了使用类的操作方法 即使用指针 否则两个类无限调用 如
  • linux下mycat读写分离的配置

    夏尔先生 linux下mycat读写分离的配置 为什么要配置读写分离 我想我就不需要再赘述了 那么在mycat下如何进行读写分离的配置 配置之后的实际效率又如何呢 我上午根据文档捣鼓和测试了一下 这里做一下记录 最开始 我们还是要配置mys