当前位置: 首页 > news >正文

msyql数据库读写分离搭建

一.mysql读写分离:缓解主服务器的压力1.概念:主服务器写数据,从服务器读数据2.实现方法:客户端分离: 开发手动分离地址服务端分离: 数据库与应用之间加一个中间件,分离读写请求mysql-proxy,mysql-route,maxscaleamoeba,cobar,mycat2atlas,kingshard,vitees3.mycat配置方法:冷配置:直接改配置文件热配置:命令配置4.操作步骤主从-->users-->datasources-->cluster-->主备配置读写分离-->shecma配置逻辑库1.搭建主从服务器56,572.安装授权mycat,安装mysql(原型库,存储mycat运行的数据)mycat2-1.21-release-jar-with-dependencies.jar :运行依赖包mycat2-install-template-1.21.zip:软件包yum -y install java-1.8.0-openjdk.x86_64cp mycat2-1.21-release-jar-with-dependencies.jar  /usr/local/mycat/lib/chmod +x /usr/local/mycat/bin/*chmod -R 777 /usr/local/mycat3.定义客户端连接mycat服务使用的用户及密码/usr/local/mycat/conf/users/root.user.json{"dialect":"mysql","ip":null,"password":"654321", 密码"transactionType":"proxy","username":"mycat" 用户名}4.配置本机用户和datasources数据源地址,mycat机器的mysql创建plj用户并授权/usr/local/mycat/conf/datasources/prototypeDs.data{...."password":"123456", 密码"type":"JDBC",...."user":"plj", 用户名"weight":0}----mysql> create user plj@"%" identified by "123456";  //创建plj用户mysql> grant all on *.* to plj@"%" ;   //授予权限5.启动mycat服务并登录(8066)/usr/lcoal/mycat/bin/mycat startmysql -h127.0.0.1 -P8066 -umycat -p6543216.mycat下,配置主从的用户数据源地址,mysql56,主机器上创建主从数据源的用户并授权/*+ mycat: createdatasource{"name":"whost56", #master角色主机名"url":"jdbc:mysql://192.168.88.56:3306","user":"plja","password":"123456"} */;/*+ mycat: createdatasource{"name":"rhost57", #slave角色主机名"url":"jdbc:mysql://192.168.88.57:3306","user":"plja","password":"123456"} */;----mysql> create user plja@"%" identified by "123456";  //创建plj用户mysql> grant all on *.* to plja@"%" ;   //授予权限热配置,用户/数据源/集群/逻辑库相关命令/*+ mycat: showusers{} / showdatasources{} / showschemas{} */;/*+ mycat: createuser{"name":"xx","password":"xx"...} / createdatasource{"name":"xx"}  / createschema{"name":"xx"}*/;/*+ mycat: dropuser{"name":"xx"} /dropdatasource{"name":"xx"} /dropschema{"name":"xx"}*/;---集群/*+ mycat: showclusters{} */;/*! mycat: createcluster{"name":"xx"...} */;/*! mycat: dropcluster{"name":"xx"...} */;7.mycat下,主从服务器加入集群mysql -h127.0.0.1 -P8066 -umycat -p654321/*! mycat:createcluster{"name":"rwcluster","masters":["whost56"], #master角色主机名"replicas":["rhost57"] #slave角色主机名}*/ ;8.调整配置文件修改主从的读写操作(之前配置的name=这里的配置文件名称)vim /usr/local/mycat/conf/datasources/whost56.datasource.json"instanceType":"WRITE"  #分配写vim /usr/local/mycat/conf/datasources/rhost57.datasource.json "instanceType":"READ"   #分配读vim /usr/local/mycat/conf/clusters/rwcluster.cluster.json "instanceType":"BALANCE_ALL_READ" BALANCE_ALL:获取集群中所有数据源BALANCE_ALL_READ:读请求都会被均衡地分配到所有的从库BALANCE_READ_WRITE:获取集群中允许读写的数据,单允许读的数据优先BALANCE_NONE:获取集群中允许写的数据重启服务 /usr/local/mycat/bin/mycat restart9.登录mycat,创建testdb库,生成testdb.schema.json文件,修改配置文件,逻辑库关联集群真实库mysql -h127.0.0.1 -P8066 -umycat -p654321create database testdb;vim /usr/local/mycat/conf/schemas/testdb.schema.json"schemaName":"testdb","targetName":"rwcluster", #集群名称10.登录mycat,创建表,写记录测试,完成数据的读写分离mysql -h127.0.0.1 -P8066 -umycat -p654321create table testdb.user(name char(10),password char(10));insert into  testdb.user values("yaya","123456");

2.mysql读写分离:缓解主服务器的压力

    1.概念:主服务器写数据,从服务器读数据
    2.实现方法:
        客户端分离: 开发手动分离地址
        服务端分离: 数据库与应用之间加一个中间件,分离读写请求
                mysql-proxy,mysql-route,maxscale
                amoeba,cobar,mycat2
                atlas,kingshard,vitees
    3.mycat配置方法:
        冷配置:直接改配置文件
        热配置:命令配置
        
    4.操作步骤
        
        主从-->users-->datasources-->cluster-->主备配置读写分离-->shecma配置逻辑库
        1.搭建主从服务器56,57
            
        2.安装授权mycat,安装mysql(原型库,存储mycat运行的数据)
         mycat2-1.21-release-jar-with-dependencies.jar :运行依赖包
         mycat2-install-template-1.21.zip:软件包

         yum -y install java-1.8.0-openjdk.x86_64
         cp mycat2-1.21-release-jar-with-dependencies.jar  /usr/local/mycat/lib/
        
         chmod +x /usr/local/mycat/bin/*
         chmod -R 777 /usr/local/mycat
        3.定义客户端连接mycat服务使用的用户及密码
            /usr/local/mycat/conf/users/root.user.json
            {
                "dialect":"mysql",
                "ip":null,
                "password":"654321", 密码
                "transactionType":"proxy",
                "username":"mycat" 用户名
            }

        4.配置本机用户和datasources数据源地址,mycat机器的mysql创建plj用户并授权
            /usr/local/mycat/conf/datasources/prototypeDs.data
            {
               ....
                "password":"123456", 密码
                "type":"JDBC",
                   ....
                "user":"plj", 用户名
                "weight":0
            }
            ----
            mysql> create user plj@"%" identified by "123456";  //创建plj用户
            mysql> grant all on *.* to plj@"%" ;   //授予权限
        
        5.启动mycat服务并登录(8066)
            /usr/lcoal/mycat/bin/mycat start

            mysql -h127.0.0.1 -P8066 -umycat -p654321

        6.mycat下,配置主从的用户数据源地址,mysql56,主机器上创建主从数据源的用户并授权

            /*+ mycat: createdatasource{
            "name":"whost56", #master角色主机名
            "url":"jdbc:mysql://192.168.88.56:3306",
            "user":"plja",
            "password":"123456"
            } */;
        
            /*+ mycat: createdatasource{
            "name":"rhost57", #slave角色主机名
            "url":"jdbc:mysql://192.168.88.57:3306",
            "user":"plja",
            "password":"123456"
            } */;
            ----
            mysql> create user plja@"%" identified by "123456";  //创建plj用户
            mysql> grant all on *.* to plja@"%" ;   //授予权限

        热配置,用户/数据源/集群/逻辑库相关命令

        /*+ mycat: showusers{} / showdatasources{} / showschemas{} */;

        /*+ mycat: createuser{"name":"xx","password":"xx"...} / createdatasource{"name":"xx"}  / createschema{"name":"xx"}*/;

         /*+ mycat: dropuser{"name":"xx"} /dropdatasource{"name":"xx"} /dropschema{"name":"xx"}*/;
        
        ---集群
        /*+ mycat: showclusters{} */;
        /*! mycat: createcluster{"name":"xx"...} */;
        /*! mycat: dropcluster{"name":"xx"...} */;

    
        7.mycat下,主从服务器加入集群
            mysql -h127.0.0.1 -P8066 -umycat -p654321

            /*! mycat:createcluster{
            "name":"rwcluster",
            "masters":["whost56"], #master角色主机名
            "replicas":["rhost57"] #slave角色主机名
            }*/ ;
            

        8.调整配置文件修改主从的读写操作(之前配置的name=这里的配置文件名称)
            vim /usr/local/mycat/conf/datasources/whost56.datasource.json
                "instanceType":"WRITE"  #分配写
            vim /usr/local/mycat/conf/datasources/rhost57.datasource.json 
                "instanceType":"READ"   #分配读
            vim /usr/local/mycat/conf/clusters/rwcluster.cluster.json 
                "instanceType":"BALANCE_ALL_READ" 

            BALANCE_ALL:获取集群中所有数据源
            BALANCE_ALL_READ:读请求都会被均衡地分配到所有的从库
            BALANCE_READ_WRITE:获取集群中允许读写的数据,单允许读的数据优先
            BALANCE_NONE:获取集群中允许写的数据
    
            重启服务 /usr/local/mycat/bin/mycat restart

        9.登录mycat,创建testdb库,生成testdb.schema.json文件,修改配置文件,逻辑库关联集群真实库
            mysql -h127.0.0.1 -P8066 -umycat -p654321
            create database testdb;

            vim /usr/local/mycat/conf/schemas/testdb.schema.json
                   "schemaName":"testdb",
                    "targetName":"rwcluster", #集群名称

        10.登录mycat,创建表,写记录测试,完成数据的读写分离
            mysql -h127.0.0.1 -P8066 -umycat -p654321
            create table testdb.user(name char(10),password char(10));
            insert into  testdb.user values("yaya","123456");
 

相关文章:

msyql数据库读写分离搭建

一.mysql读写分离:缓解主服务器的压力1.概念:主服务器写数据,从服务器读数据2.实现方法:客户端分离: 开发手动分离地址服务端分离: 数据库与应用之间加一个中间件,分离读写请求mysql-proxy,mysql-route,maxscaleamoeba,cobar,mycat2atlas,kingshard,vitees3.mycat配置方法:冷配…...

WWW23-多行为级联|级联图卷积网络的多行为推荐

论文:https://arxiv.org/abs/2303.15720 代码:https://github.com/SS-00-SS/MBCGCN 这篇论文MB-CGCN和上一篇CRGCN是同一个团队的,都是级联的方式。一个用了残差,一个用了特征转换,文章最后有discussion讨论了两者的不…...

【EthIf-14】EthIfGeneral容器配置-02

1.实际EthIfGeneral的配置实例 关闭DET接口开启发送确认中断开启接收中断主周期接收timeout主周期 2. 代码实例参考 阅读此部分代码,搞清楚代码分为几个section,大概瞄一眼就好,不用深究其含义,只需有一个宏观的层次结构的映像即可。 //Appl/GenData/EthIf_Cfg.h #...

近实时”(NRT)搜索、倒排索引

近实时(Near Real-Time, NRT)搜索 近实时(NRT)搜索是 Elasticsearch 的核心特性之一,指的是数据在被写入到系统后,可以几乎立即被搜索和查询到。虽然它不像传统数据库那样完全实时,但它的延迟通…...

Ubuntu20.04安装openMVS<成功>.colmap<成功>和openMVG<失败(已成功)>

一、安装openMVS 参考官方文档 sudo apt-get -y install git mercurial cmake libpng-dev libjpeg-dev libtiff-dev libglu1-mesa-dev eigen git clone https://gitlab.com/libeigen/eigen --branch 3.4 mkdir eigen_build cd eigen_build &&\cmake . ../eigen -…...

从测试服务器手动热部署到生产环境的实现

为了实现从测试服务器(192.168.0.255)手动热部署到生产环境(172.168.20.100),可以采用多种方法。以下是详细的步骤和最佳实践,帮助你实现这一目标。 1. 准备生产环境 确保生产环境上的 Docker 和 Docker …...

【c++高阶DS】图

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 目录 01.并查集02.图的介绍03.图的存储结构03.1.邻接矩阵03.2.邻接表03.3.矩阵版本代码实现03.4.邻接表版本代码实现 完整代码: 01.并查集 在一些应用问题中,需要将…...

React第十八节 useEffect 用法使用技巧注意事项详解

1、概述 useEffect 是React中一个用于 将组件与外部系统同步的 Hook;在函数式组件中处理副作用函数的 Hook,用于替代类式组件中的生命周期函数; 可以在副作用函数中 实现以下操作: a、请求接口,获取后台提供数据 b、操…...

C++ 指针基础:开启内存操控之门

1. 指针为何如此重要 在 C 编程领域,指针堪称一项极为关键的特性。它赋予了程序员直接访问和操控内存的能力,这使得程序在处理复杂数据结构与优化性能时具有更高的灵活性。想象一下,在编写大型程序时,高效地管理内存资源是多么重要…...

Nginx的stream模块代理四层协议TCP的流量转发

Nginx的stream模块是一个功能强大的工具,专门用于处理四层协议(即网络层和传输层,如TCP和UDP)的流量。以下是对Nginx stream模块的详细解析: 一、基本功能 Nginx的stream模块主要用于实现TCP和UDP数据流的代理、转发…...

UE5 渲染管线 学习笔记

兰伯特 SSS为散射的意思 带Bias的可以根据距离自动切换mip的卷积值 而带Level的值mipmaps的定值 #define A8_SAMPLE_MASK .a 这样应该就很好理解了 这个只采样a通道 带Level的参考上面的 朝左上和右下进行模糊 带Bias参考上面 随机数 4D 3D 2D 1D...

Echarts连接数据库,实时绘制图表详解

文章目录 Echarts连接数据库,实时绘制图表详解一、引言二、步骤一:环境准备与数据库连接1、环境搭建2、数据库连接 三、步骤二:数据获取与处理1、查询数据库2、数据处理 四、步骤三:ECharts图表配置与渲染1、配置ECharts选项2、动…...

Electron 学习笔记

目录 一、安装和启动electron 1. 官网链接 2. 根据文档在控制台输入 3. 打包必填 4. 安装electron开发依赖 5. 在开发的情况下打开应用 6. 修改main为main.js,然后创建main.js 7.启动 二、启动一个窗口 1. main.js 2. index.html 3. 隐藏菜单栏 三、其他…...

Debian 12 安装配置 fail2ban 保护 SSH 访问

背景介绍 双十一的时候薅羊毛租了台腾讯云的虚机, 是真便宜, 只是没想到才跑了一个月, 系统里面就收集到了巨多的 SSH 恶意登录失败记录. 只能说, 互联网真的是太不安全了. 之前有用过 fail2ban 在 CentOS 7 上面做过防护, 不过那已经是好久好久之前的故事了, 好多方法已经不…...

http反向代理

通过反向代理实现访问biying,目前访问一些网站需要绕过cloudfare还没有解决,代码如下: from fastapi import FastAPI, Request from fastapi.responses import StreamingResponse import httpx import uvicorn import logging# 设置日志 logging.basicConfig(level=logging.…...

java12.24日记

运算符: 算术运算符: 顾名思义进行算数运算的 多为:四则运算,加一个取余 ,-,*,/以及 %(取余) 而外的:自增 以及自减--,对原数进行1或者-1 i…...

vue中proxy代理配置(测试一)

接口地址:http://jsonplaceholder.typicode.com/posts 1、配置一(代理没起作用) (1)设置baseURL为http://jsonplaceholder.typicode.com (2)proxy为 ‘/api’:’ ’ (3&a…...

[OpenGL]使用TransformFeedback实现粒子效果

一、简介 本文介绍了如何使用 OpenGL 中的 Transform Feedback 实现粒子效果,最终可以实现下图的效果: 本文的粒子系统实现参考了modern-opengl-tutorial, ogldev-tutorial28 和 粒子系统–喷泉 [OpenGL-Transformfeedback]。 二、使用 TransformFeed…...

GitCode 光引计划投稿 | GoIoT:开源分布式物联网开发平台

GoIoT 是基于Gin 的开源分布式物联网(IoT)开发平台,用于快速开发,部署物联设备接入项目,是一套涵盖数据生产、数据使用和数据展示的解决方案。 GoIoT 开发平台,它是一个企业级物联网平台解决方案&#xff…...

用 gdbserver 调试 arm-linux 上的 AWTK 应用程序

很多嵌入式 linux 开发者都能熟练的使用 gdb/lldb 调试应用程序,但是还有不少朋友在调试开发板上的程序时,仍然在使用原始的 printf。本文介绍一下使用 gdbserver 通过网络调试开发板上的 AWTK 应用程序的方法,供有需要的朋友参考。 1. 下载 …...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

文件上传漏洞防御全攻略

要全面防范文件上传漏洞&#xff0c;需构建多层防御体系&#xff0c;结合技术验证、存储隔离与权限控制&#xff1a; &#x1f512; 一、基础防护层 前端校验&#xff08;仅辅助&#xff09; 通过JavaScript限制文件后缀名&#xff08;白名单&#xff09;和大小&#xff0c;提…...

Java并发编程实战 Day 11:并发设计模式

【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天&#xff0c;今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案&#xff0c;它们不仅提供了优雅的设计思路&#xff0c;还能显著提升系统的性能…...

在Zenodo下载文件 用到googlecolab googledrive

方法&#xff1a;Figshare/Zenodo上的数据/文件下载不下来&#xff1f;尝试利用Google Colab &#xff1a;https://zhuanlan.zhihu.com/p/1898503078782674027 参考&#xff1a; 通过Colab&谷歌云下载Figshare数据&#xff0c;超级实用&#xff01;&#xff01;&#xff0…...

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)

注&#xff1a;文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件&#xff1a;STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...