企业架构LNMP学习笔记39

news2024/11/21 2:29:44

MySQL读写分离案例实现:

搭建M-S复制

主从复制的原理:主服务器开启bin-log(记录了写操作),从服务器获取到主服务器的bin-log,记录到relay-log中。从服务器在通过异步的线程方式,对于relay-log进行重放操作。

服务器名称IP地址
server02192.168.17.108
server06192.168.17.112

1、master配置:

1)在master服务器授权,slave服务器replication slave权限。

slave是通过MySQL连接登录到master上来读取二进制日志的,因此要在master给slave配置权限:

grant replication slave on *.* to 'slave'@'192.168.17.112' identified by '123456';
flush privileges;

 然后在另外slave服务器上进行下登录测试:

 这个slave是到master服务器上读日志文件的,所以它的权限是有限的。

2)master服务器上打开bin-log日志,并标识server-id:

 server-id=1,不是图中的下划线。

log_bin: 以主机名命名。

然后是重启mysql使配置生效。

systemctl restart mysql

检查生成的日志文件:

制作一个完整的备份:

如果确认主从的数据库,默认开始数据是一致的,可以不做备份。

mysqldump -uroot -p'123456' --all-databases > /root/mysql.sql

 查看master上的bin-log及其position位置:

show master status;

查看并记录File的值,Position的值。之后需要在服务器上,指向这些信息。

slave配置:

恢复备份文件:

如果slave和master的数据本身就是相同的,可以不选择备份和导入。

配置server-id,标识服务器:

vim /etc/my.cnf

由于是克隆获取的MySQL实例,所以auto.conf里面记录的UUID一样,需要删除/usr/local/mysql/data/auto.conf文件,否则主从无法识别互相身份,重新自动生成新的即可。

我这边还需要了一个问题,就是mysql启动不成功,然后我把虚拟机重新进行了启动,把mysql的问题解决了。这个问题得到了解决。 

配置slave replication:

help change master to

 

参数说明

master_host 主master的IP

master_user 主master允许登录,拥有replication slave权限

master_password 用户的密码

需要通过mysql > show master status; 在master执行

master_log_file 主master记录的bin-log日志文件名称

master_log_pos 主master记录的bin-log日志文件对应的位置

 

 然后再检查下show slave status\G;

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.17.108
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-index.000003
          Read_Master_Log_Pos: 120
               Relay_Log_File: server06-relay-bin.000002
                Relay_Log_Pos: 285
        Relay_Master_Log_File: mysql-index.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              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: 120
              Relay_Log_Space: 461
              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: 1
                  Master_UUID: e7e1e13c-48c0-11ee-97ef-000c2961eeaf
             Master_Info_File: /usr/local/mysql/data/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
           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
1 row in set (0.00 sec)

ERROR:
No query specified

mysql>

 

查看到两个yes,主从复制成功。否则,查看显示最下面信息,通过error信息进行排查问题。

那么现在做一个测试:

1)在master上建一个库,进行测试:

slave上已经看到有testslave这个数据库了。

然后再看查看相关信息,可以看到日志也发生了一些变化:

两个线程遇到的问题:

IO error:正常是查找不到文件。

SQL error: 一般是重放的时候出问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1000551.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

明星为何会偷税?我国的交税政策是?

近几年常常会看到某明星偷税漏税塌房的,从最开始的震惊,到后面的习以为常:很多明星都在偷税漏税啊。那么明星为什么会是偷税漏税的高发区? 交税标准 个人 根据我国的税务相关法律规定,个人收入每月超过5000&#xf…

微服务高可用容灾架构设计

导语 相对于过去单体或 SOA 架构,建设微服务架构所依赖的组件发生了改变,因此分析与设计高可用容灾架构方案的思路也随之改变,本文对微服务架构落地过程中的几种常见容灾高可用方案展开分析。 作者介绍 刘冠军 腾讯云中间件中心架构组负责…

windows本地验证码识别工具

windows本地验证码识别小工具 - 可以用在windows系统中,并可以集成在Java或python程序中 演示视频如下:可用于识别4-7位的字母数字组合的验证码(识别准确率在70% - 80%)。 验证码识别演示 本项目未开源,如需使用请联…

IntelliJ IDEA 远程调试 Tomcat

准备工作 明确远程服务器的 IP 地址,比如我是:192.168.92.128 关掉服务器防火墙:service iptables stop 本地 Remote Server 配置 添加 Remote Server,如下图 复制 Remote Server 自动生成的 JVM 参数,等下有用&…

透过优衣库秋冬新品巡展,看见服装消费新风尚

这是一个被高温笼罩的夏天,人们想法设法适应季节变换,在这种适应中,尽可能地保持着装之美。 一向走在穿衣风格一线的优衣库,并没有缺席市场更替中涌现的需求,其春夏系列从凉感防晒的功能性服装,到“辣妹T”…

腾讯云2023年云服务器优惠活动价格表

腾讯云经常推出各种云产品优惠活动,为了帮助大家更好地了解腾讯云服务器的价格和优惠政策,下面给大家分享腾讯云最新云服务器优惠活动价格表,助力大家轻松上云! 一、轻量应用服务器优惠活动价格表 1、轻量应用服务器:…

稳定的 Glance 来了,安卓小部件有救了!

稳定的 Glance 来了,安卓小部件有救了! 稳定版本的 Glance 终于发布了,来一起看看吧,看看这一路的旅程,看看好用么,再看看如何使用! 前世今生 故事发生在两年的一天吧,其实夸张了…

数据结构算法刷题(29)动态规划

思路一&#xff1a;回溯&#xff1a;按照选和不选的判断方式&#xff0c;使用回溯来解决这个问题。 class Solution: def rob(self, nums: List[int]) -> int: n len(nums) #数组的长度 def dfs(i): if i<0: #到达边界条件后 return 0 #返回最大金额是0 res max(dfs(i…

医疗环境升级改造,从此温湿度监控不用慌!

在现代医疗环境中&#xff0c;为了确保患者的舒适和康复&#xff0c;温度和湿度的监控和管理变得至关重要。特别是在疗养院这样的医疗机构中&#xff0c;患者的健康与室内环境条件密切相关。温度和湿度的不适当波动可能导致不仅是不适&#xff0c;还可能加剧病情&#xff0c;影…

9月8日上课内容 第一章 rsync远程同步

主从复制总结 redis主从复制 是为了数据冗余和读写分离 在这两种模式中&#xff0c;有两种角色主节点 (master) 和从节点 (slave) &#xff0c;主节点负责处理写的操作&#xff0c;并将数据更改复制到一个或多个从节点。这样我们的主节点负载减轻&#xff0c;从节点可以提供数据…

UI设计新手指南之什么是UI设计?

最直观的&#xff0c;只要用手机&#xff0c;打开界面就会接触到 UI 设计。 UI 设计是什么&#xff1f;它是指对软件人机交互、操作逻辑、界面美观的整体设计。UI设计的目的是创造出简单、直观、易于使用的界面&#xff0c;为用户提供良好的体验。随着移动互联网的兴起&#x…

分享一下奶茶店怎么在小程序上做商城功能

随着移动互联网的普及&#xff0c;越来越多的消费者倾向于在手机上完成购物需求。对于奶茶店来说&#xff0c;在小程序上开设商城功能不仅可以扩大销售渠道&#xff0c;还能提高品牌知名度和用户体验。本文将探讨如何在小程序上为奶茶店实现商城功能。 对于奶茶店的商城功能&am…

Spring-MVC使用JSR303及拦截器,增强网络隐私安全

目录 一、JSR303 ( 1 ) 是什么 ( 2 ) 作用 ( 3 ) 常用注解 ( 4 ) 入门使用 二、拦截器 2.1 是什么 2.2 拦截器与过滤器的区别 2.3 应用场景 2.4 基础使用 2.5 用户登录权限控制 给我们带来的收获 一、JSR303 ( 1 ) 是什么 JSR 303是Java规范请求&#xff…

旅游复苏弹高OTA业绩,未来走势却有“U型曲线”与“抛物线”之变

文 | 螳螂观察 作者 | 易不二 经历了3年蛰伏&#xff0c;旅游业确实熬出头了&#xff0c;OTA也迎来了强势反弹。 自年初起就逐步恢复的旅游行业&#xff0c;经历了暑期小高潮后&#xff0c;正在逐步以强劲的复苏能力&#xff0c;为OTA们的期中财报增彩。 今年二季度&#x…

83 # 静态服务中间件 koa-static 的使用以及实现

静态服务中间件&#xff1a;koa-static 中间件可以决定是否向下执行&#xff0c;如果自己可以处理&#xff0c;那么直接处理完毕结束&#xff0c;如果自己处理不了&#xff0c;next 方法会继续向下执行 新建 public 文件夹&#xff0c;里面添加 index.html、style.css 文件 …

机器学习_个人笔记_周志华(更新中......)

第1章 绪论 1.1 引言 形成优秀的心理表征&#xff0c;自然能成为领域内的专家。 系统1 & 系统2。 机器学习&#xff1a;致力于研究如何通过计算的手段&#xff0c;利用经验来改善系统自身的性能。主要研究计算机从数据中产生model的算法&#xff0c;即“learning algori…

myCobot Pro600六轴机械臂与3D深度视觉:物体精确识别抓取堆叠

Introduction 随着时代的进步&#xff0c;各种精密的机械臂&#xff0c;人形机器人不断的问世。我们即将迎来到处都是机器人的高科技时代。为了跟上时代的脚步&#xff0c;我最近入手了一台myCobot pro 600机械臂&#xff0c;我主要是想要用它来学习机械臂相关得控制以及机器视…

【跟小嘉学 Apache Flink】二、Flink 快速上手

系列文章目录 【跟小嘉学 Apache Flink】一、Apache Flink 介绍 【跟小嘉学 Apache Flink】二、Flink 快速上手 文章目录 系列文章目录[TOC](文章目录) 一、创建工程1.1、创建 Maven 工程1.2、log4j 配置 二、批处理单词统计&#xff08;DataSet API&#xff09;2.1、创建 Bat…

今日话题:解决Linux中可以识别但无法连接Airpods问题(亲测且实用)

今日话题&#xff1a;解决Linux中可以识别但无法连接Airpods问题 起因经过结果方式一方式二 起因经过 在根据“Linux启动黑屏卡住Logo登录界面无法进入系统的终极解决方式”博客解决掉gdm3以及lightdm图形界面之间冲突的问题后&#xff0c;准备设置打开蓝牙连接Airpods&#x…

Java | 多线程

不爱生姜不吃醋⭐️ 如果本文有什么错误的话欢迎在评论区中指正 与其明天开始&#xff0c;不如现在行动&#xff01; 文章目录 &#x1f334;前言&#x1f334;一、什么是多线程&#xff1f;1.进程2.线程3.多线程作用 &#x1f334;二、多线程中的两个概念1. 并发2. 并行3.举例…