部署mysql主从同步,部署mysql数据读写分离结构+mycat2
主要命令
- [root@mysql59 ~]# yum –y install mysql-server mysql
- [root@mysql59 ~]# systemctl start mysqld
- [root@mysql59 ~]# vim /etc/my.cnf.d/mysql-server.cnf
- [mysqld]
- server-id=59
- log-bin=mysql59
- :wq
- [root@mysql59 ~]# systemctl restart mysqld
- //用户授权
- [root@mysql59 ~]# mysql
- mysql> create user repluser@"%" identified by "123qqq...A"; 创建用户
- Query OK, 0 rows affected (0.11 sec)
- mysql> grant replication slave on *.* to repluser@"%"; 授予权限
- Query OK, 0 rows affected (0.09 sec)
- //查看日志信息
- mysql> show master status;
- +----------------+----------+--------------+------------------+-------------------+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
- +----------------+----------+--------------+------------------+-------------------+
- | mysql59.000001 | 667 | | | |
- +----------------+----------+--------------+------------------+-------------------+
- 1 row in set (0.00 sec)
配置slave服务器MySQL60
- //指定server-id 并重启数据库服务
- [root@mysql60 ~]# yum –y install mysql-serv er mysql
- [root@mysql60 ~]# systemctl start mysqld
- [root@mysql60 ~]# vim /etc/my.cnf.d/mysql-server.cnf
- [mysqld]
- server-id=60
- :wq
- [root@mysql60 ~]# systemctl restart mysqld
- //登陆服务指定主服务器信息
- [root@mysql60 ~]# mysql
- mysql> change master to master_host="192.168.88.59" , master_user="repluser" , master_password="123qqq...A" ,master_log_file="mysql59.000001" , master_log_pos=667;
- Query OK, 0 rows affected, 8 warnings (0.34 sec)
- //启动slave进程
- mysql> start slave ;
- Query OK, 0 rows affected, 1 warning (0.04 sec)
- //查看状态信息
- mysql> show slave status \G
- *************************** 1. row ***************************
- Slave_IO_State: Waiting for source to send event
- Master_Host: 192.168.88.59
- Master_User: repluser
- Master_Port: 3306
- Connect_Retry: 60
- Master_Log_File: mysql59.000001
- Read_Master_Log_Pos: 667
- Relay_Log_File: mysql60-relay-bin.000002
- Relay_Log_Pos: 322
- Relay_Master_Log_File: mysql59.000001
- Slave_IO_Running: Yes //IO线程
- Slave_SQL_Running: Yes //SQL线程
- Replicate_Do_DB:
- Replicate_Ignore_DB:
- Replicate_Do_Table:
- Replicate_Ignore_Table:
- Replicate_Wild_Do_Table:
- Replicate_Wild_Ignore_Table:
- Last_Errno: 0
- Last_Error:
- Skip_Counter: 0
- Exec_Master_Log_Pos: 667
- Relay_Log_Space: 533
- Until_Condition: None
- Until_Log_File:
- Until_Log_Pos: 0
- Master_SSL_Allowed: No
- Master_SSL_CA_File:
- Master_SSL_CA_Path:
- Master_SSL_Cert:
- Master_SSL_Cipher:
- Master_SSL_Key:
- Seconds_Behind_Master: 0
- Master_SSL_Verify_Server_Cert: No
- Last_IO_Errno: 0
- Last_IO_Error:
- Last_SQL_Errno: 0
- Last_SQL_Error:
- Replicate_Ignore_Server_Ids:
- Master_Server_Id: 59
- Master_UUID: 38c02165-005e-11ee-bd2d-525400007271
- Master_Info_File: mysql.slave_master_info
- SQL_Delay: 0
- SQL_Remaining_Delay: NULL
- Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
- Master_Retry_Count: 86400
- Master_Bind:
- Last_IO_Error_Timestamp:
- Last_SQL_Error_Timestamp:
- Master_SSL_Crl:
- Master_SSL_Crlpath:
- Retrieved_Gtid_Set:
- Executed_Gtid_Set:
- Auto_Position: 0
- Replicate_Rewrite_DB:
- Channel_Name:
- Master_TLS_Version:
- Master_public_key_path:
- Get_master_public_key: 0
- Network_Namespace:
- 1 row in set, 1 warning (0.00 sec)
- mysql>
主(master)数据库服务器角色
网站连接后用来存储数据的服务器(只有一台)
从(slave)数据库服务器角色
自动同步主服务器上的数据(可以有很多台)
配置mysql主从
54连接53把53上面的命令copy过去在54上执行一遍
IP 192.168.88.53 做master服务器
1.启用binlog日志文件,配置文件:/etc/my.cnf.d/mysql-server.cnf
2.用户授权
create user repluser@"%" identified by "123"
grant replication slave on *.* to repluser@"%";
3.查看正在使用的binlog日志文件
主从同步的工作原理
Slave_IO_Running: yes
负责联系master 复制master主机 bnlog 日志文件里的sql命令到本机的relay-log文件里
从主服务器总mysql主机名-relay-log 中继日志文件
Slave_SQL_Running:yes
执行本机relay-log里的日志文件,实现与master内容一致
必须io线程和sql线程是yes
单向同步,永远是从去同步主上的内容.
排错方法
Last_IO_Error: IO线程报错信息
报错原因 通常是change master to 的配置项不正确
解决办法: 重新指定主服务 stop slave change msater to start slave;
Last_SQL_Error: SQL线程报错信息
通常是执行relay-log文件里的sql命令时 失败 导致的
show slave status \G
可以竖着看
配置"一主多从"结构
配置数据读写分离结构(主从同步+mycat软件实现)
IP 192.168.88.54 做clave服务器
指定server_id 并重启数据库服务,指定主服务器信息,启动slave进程,查看状态信息
show slave status
1.指定server_id (不能重复,唯一的) 重启binlog服务器
要手动同步 主服务器 比自己多的
在master 服务器执行完全备份 把备份文件copy给slave主机
show master status;
]#mysqldump -B bbsdb > /root/bbsdb.sql
]# scp /root/bbsdb.sql root@192.168.88.55/root/
在slave服务器执行 备份文件 恢复数据
mysql < /rootbbsdb.sql
在slave 服务器执行 备份文件 恢复数据
2.指定主服务器信息
服务器的ip 用户名 密码 日志文件 偏移量
3.启动slave
4.查看状态信息
一主一从
一主多从
主从主
主主结构
主从同步
master服务器配置
1.启用binlog日志
2.创建用户并授权
3.查看正在使用的日志文件
slave服务器的配置
1.指定server_id (不能重复,唯一的) 重启binlog服务器
2.指定主服务器信息
服务器的ip 用户名 密码 日志文件 偏移量
3.启动slave
4.查看状态信息
Slave_IO_Running: yes
Slave_SQL_Running:yes
部署mysql数据读写分离结构+mycat2
理论:把客户端访问数据库服务的查询访问select 和 写访问 insert 分别给不同的数据库服务器处理.
功能:减轻单台数据库服务器的并发访问压力
如何实现数据读写分离
人肉分离 select ----------> 57
insert -----------> 56
proxy -----------> 58
通过搭建读写分离服务实现
能够实现数据读写分离服务的软件(中间件)有哪些
mysql-proxy mycat,mycat2(可以实现读写分离,高可用,分布式存储等功能)
环境准备:后端两台服务器一定是主从结构,配置,mysql主从结构
配置mycat服务器 192.168.88.58
1.安装mycat
2.修改配置
设置客户端连接mucat 服务器时 使用的用户名和密码:定义客户端连接mycat服务使用用户及密码:
设置mycat服务启动时连接的数据库服务器
根据配置在本机运行mysql服务并创建plj用户
3.启动mycat
mycat服务监听的是8066端口 mysql默认访问3306端口
三.连接mycat服务配置读写分离
mysql -h127.0.0.1 -P8066 -umycat -p654321
添加数据源 定义数据库服务器的ip地址
- /*+ mycat:createdatasource{
- "name":"whost56", "url":"jdbc:mysql://192.168.88.56:3306","user":"plja","password":"123456"}*/;
测试配置
mysql -h192.168.88.58 -Pmycat服务的端口 -umycat -p654321
2.在数据服务器 上添加plja用户
3.创建集群 把57()和56()组成工作组
删除
ls /usr/local/mycat/conf/datasources/
所添加的数据源所在位置
/*+mycat:showDataSources{}*/ \G
json命令查看数据源
- /*!mycat:createcluster{
- "name":"rwcluster",
- "masters":["whost56"],
- "replicas":["rhost57"]
- }*/ ;
4. 指定数据库服务器的角色
master 角色服务器负责insert 访问
slave角色服务器负责
5.定义集群出来读访问的策略
集群处理查询访问的方式
支持的策略有:BALANCE_ALL 获取集群中所有
默认的是发给所有BALANCE_ALL_READ 获取集群中允许读数据源
BALANCE_NONE 获取集群中允许
6.创建网站存储数据使用的库,并定义 库存储数据使用rwcluster
相关文章:
部署mysql主从同步,部署mysql数据读写分离结构+mycat2
主要命令 [rootmysql59 ~]# yum –y install mysql-server mysql[rootmysql59 ~]# systemctl start mysqld[rootmysql59 ~]# vim /etc/my.cnf.d/mysql-server.cnf[mysqld]server-id59log-binmysql59:wq[rootmysql59 ~]# systemctl restart mysqld//用户授权[rootmysql59 ~]# my…...
【最新!超详细C++入门】
01_C语言基础 一、课程目标 1、掌握 C基本语法:变量、常量、注释、标识符命名规范 2、掌握C数据类型 3、掌握C的输入和输出 4、掌握C运算符和表达式 5、掌握条件语句 6、掌握循环语句 二、课程内容 1 C初识 1.1 第一个C程序 编写一个C程序总共分为4个步骤…...
【Linux】【实战系列】10 分钟掌握日常开发中 Linux 网络处理相关命令
文章目录 lsofnetstatpingnslookupsshssh-keygenscpsftp 网络工具 curl网络工具 wget最后个人简介 hello,大家好,我是 Lorin,上一期和大家分享一期日常开发中常用的 Linux 文件和文本命令实战教学,这一期给大家带来常用的网络处理…...
语义分割常用评价指标
在图像处理领域中,语义分割是很重要的一个任务。在实际项目开发中,评估模型预测效果以及各指标的含义对于优化模型极为重要。 本文将主要评价指标的计算算法进行了详细说明,并加上注释解释每个指标的含义。这对理解各指标背后的数学原理以及能否在实践中应用或许有…...
从0开始学习C++ 第一课:你的第一个C++程序
第一课:你的第一个C程序 当然可以。让我们从C的基础开始,我们的第一课将覆盖以下几个主题: 程序结构编写和运行你的第一个C程序基本的输入输出(I/O) 第一课:你的第一个C程序 在C中,所有的程…...
Dubbo-admin监控中心
监控中心 Dubbo-admin监控中心执行操作启动provider和consumer项目进行测试总体流程 Dubbo-admin监控中心 dubbo-admin下载路径 git clone https://github.com/apache/dubbo-admin.git图1-1 dubbo-admin项目文件展示 执行操作 # 启动zookeeper# 前端 cd dubbo-admin-ui npm i…...
216. 组合总和 III - 力扣(LeetCode)
题目描述 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 输入示例 k 3, n 7输出示例 [[1,2,…...
LeetCode-题目整理【5】:O(1) 时间插入、删除和获取随机元素
RandomizedSet结构体存在切片和哈希表的原因: 变长数组由于可以根据下标定位到特定元素,因此可以在 O(1)的时间内完成获取随机元素操作,但是由于无法在 O(1) 的时间内判断元素是否存在,因此不能在 O(1) 的时间内完成插入和删除操作…...
服务器感染了.wis[[Rast@airmail.cc]].wis勒索病毒,如何确保数据文件完整恢复?
导言: 在当今数字化的时代,恶意软件攻击已经变得越来越复杂和狡猾,[[MyFilewaifu.club]].wis [[backupwaifu.club]].wis[[Rastairmail.cc]].wis勒索病毒是其中的一种新威胁。本文91数据恢复将深入介绍[[MyFilewaifu.club]].wis [[backupwaif…...
ContentNegotiationManagerFactoryBean 内容协商
一.什么是内容协商 简单点说,就是同一资源,可以有多种表现形式,比如xml、json等,具体使用哪种表现形式,是可以协商的。 这是RESTfull的一个重要特性,Spring Web MVC也支持这个功能。 1.Spring MVC REST是如何决定采用…...
html css js 开发一个猜数字游戏
以下是一个使用HTML、CSS和JS开发的简单猜数字游戏的示例: HTML代码: <!DOCTYPE html> <html> <head><title>猜数字游戏</title><link rel"stylesheet" type"text/css" href"style.css&quo…...
HDD 东山再起,单块 30TB 起步新品想要颠覆储存行业
不得不承认,这年头机械硬盘(HDD)是越来越不受待见了。 体积大,耗电高,速度慢等多年祖传特点无不脱离当前消费者所追求的轻量化,高性能。 个人消费市场不约而同选择全面奔向固态硬盘(SSD&#x…...
【网络安全】-基本工具msf
secure 1、有此漏洞的目标主机2、无此漏洞的目标主机(常用) ps.本着兴趣爱好,加强电脑的安全防护能力,并严格遵守法律和道德规范。msf(metasploit framework)是一个开源的渗透测试框架,用于开发…...
Vue3的ref和reactive
目录 1、ref的基本使用 2、reactive的基本使用 3、ref操作dom 4、ref与reactive的异同 1、ref的基本使用 ref创建数据可以是基本类型也可以是引用类型 ref函数创建响应式数据,返回值是一个对象 模版中使用ref数据,省略.value,js代码中不能省略 获…...
Flink编程——风险欺诈检测
Flink 风险欺诈检测 文章目录 Flink 风险欺诈检测背景准备条件FraudDetectionJob.javaFraudDetector.java 代码分析执行环境创建数据源对事件分区 & 欺诈检测输出结果运行作业欺诈检测器 欺诈检测器 v1:状态欺诈检测器 v2:状态 时间完整的程序期望的…...
Day37 贪心算法 part06 738. 单调递增的数字 968. 监控二叉树
贪心算法 part06 738. 单调递增的数字 968. 监控二叉树 738. 单调递增的数字 class Solution { public:int monotoneIncreasingDigits(int n) {string strNum to_string(n);int tag strNum.size();for(int i strNum.size()-1; i>1; i--){if(strNum[i]<strNum[i-1]){…...
SpringBoot Redis入门(四)——Redis单机、哨兵、集群模式
单机模式:单台缓存服务器,开发、测试环境下使用;哨兵模式:主-从模式,提高缓存服务器的高可用和安全性。所有缓存的数据在每个节点上都一致。每个节点添加监听器,不断监听节点可用状态,一旦主节点…...
获取数组中的第一个、第二个、第三个......元素
常规操作可以直接使用索引(下标)获取: const arr [5,8,6,9,10] const first arr[0] //5 const second arr[1] //8 const third arr[2] //6 不使用索引,如何获取: const [first] [5,8,6,9,10] //…...
前端面试题(持续更新~~)
文章目录 一、基础1、数组常用的方法2、数组有哪几种循环方式?分别有什么作用?3、字符串常用的方法4、原型链5、闭包6、常见的继承7、cookie 、localstorage 、 sessionstrorage区别8、数组去重方法9、http 的请求方式10、数据类型的判断方法11、cookie …...
ubuntu下无法访问和ping通github的一种解决方法
近期在ubuntu下突然无法访问github了,ping也无法ping通,尝试过更换不同的网络也无济于事。后来在https://blog.csdn.net/weixin_48544978/article/details/133899687 这个文章中找到了解决办法。 运气比较好,只按照文章中的第一步将http://…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
