02、MySQL-------主从复制

目录

  • 七、MySql主从复制
    • 启动主从复制:
    • 原理:
    • 实现:
      • 1、创建节点
      • 2、创建数据库
      • 3、主从配置
        • 1、主节点
        • 2、从节点
      • 4、测试:
      • 5、问题:
        • 1、uuid修改
        • 2、service_id
        • 3、读写不同步
          • 方法1:
          • 方法2:

七、MySql主从复制

启动主从复制:

1、打开虚拟机 150(主master)、 152(从slave)

2、 mysql -uroot -p123456 进入主和从数据库

​ 服务器mysql -u root -p出现错误:-bash: mysql: command not found
​ 输入:alias mysql=/usr/local/mysql/bin/mysql

3、查看从数据库状态是否正确,是否有两个yes,没有两个yes就是没成功

​ (启动从服务:start slave;)查看状态: show slave status \G

​ 没成功就进行修改,查看【七-5-3读写不同步解决】

4、启动mycat: /usr/local/mycat/bin/mycat start

​ 重启mycat:/usr/local/mycat/bin/mycat restart

5、查看mycat日志: tail -f -n 50 /usr/local/mycat/logs/wrapper.log

重启mysql:service mysqld restart

原理:

主数据库用于写数据、修改数据,从数据库用于读数据

要控制写入的数据都到主数据库,就需要用到 mycat中间件,进行读写分离

在这里插入图片描述

实现:

1、创建节点

主节点master

先克隆一个 192.168.209.150 的虚拟机,作为mysql的master主节点

创建的步骤如截图中所示,截图不是克隆mysql的,是之前的。

在这里插入图片描述

在这里插入图片描述

从节点slave

跟主节点一样,ip 设置为:192.168.209.152

2、创建数据库

主节点数据库:

在这里插入图片描述

从节点数据库**

和主节点数据库一样进行创建连接

3、主从配置

1,在主服务器 vi /etc/my.cnf 中添加://给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号(比如192.168.209.150 取150)server-id=150log-bin=master-binlog-bin-index=master-bin.index
2,启动主服务器(就是启动mysql);
3,执行show master status; 查看主服务器状态;
4,复制当前主服务器中的数据库内容;
5,在从服务器中创建主服务器数据库;
6,在从服务器vi /etc/my.cnf中添加:server-id=152relay-log-index=slave-relay-bin.indexrelay-log=slave-relay-bin 
7,启动从服务器(就是启动mysql);
8,在从服务中执行:
解释:change master to master_host='192.168.209.150', //Master 服务器Ipmaster_user='root', #主节点的账号master_password='123456', #主节点的密码master_log_file='master-bin.000001',//Master服务器产生的日志master_log_pos=156; #主节点的position在mysql输入这些命令change master to master_host='192.168.209.150',master_user='root',master_password='123456',master_log_file='master-bin.000001',master_log_pos=156;9,启动从服务:start slave;查看状态:  show slave status \G10,在主服务器中添加一条数据,查看在从服务器中是否同步成功;
//注意克隆服务器,需要 
mv /var/lib/mysql/auto.cnf /var/lib/mysql/auto.cnf_bak 
然后再重新启动mysql
1、主节点

修改配置文件

在这里插入图片描述

登录mysql

服务器mysql -u root -p出现错误:-bash: mysql: command not found
输入:alias mysql=/usr/local/mysql/bin/mysql
再重复mysql -u root -p,输入mysql口令即可

在这里插入图片描述
查看主服务器状态

在这里插入图片描述

2、从节点

克隆服务器作为从节点,然后修改配置文件

在这里插入图片描述
重新启动服务器

在这里插入图片描述

在从节点的数据库中修改配置

在这里插入图片描述
查看从节点的状态,这里出了个 主从数据库uuid因为拷贝而一样的问题,修改步骤往下看

在这里插入图片描述

4、测试:

1、主数据库创建数据库,看从数据库会不会自动创建

在这里插入图片描述

2、在主数据库中创建一张表,看从数据库是否能同步(会)

3、在从数据库中创建一张表,看主数据库会不会同步(不会)

在这里插入图片描述
4、在主数据库的表中修改数据,看从数据库是否会同步(会)

5、在从数据库的表中修改数据,看主数据库是否会同步(不会)

在这里插入图片描述

5、问题:

从节点出现这个问题

在这里插入图片描述

在这里插入图片描述

1、uuid修改

1、查看uuid是否一致,两个服务器的mysql的uuid不能一样的

查询这个 auto.cnf 文件的地址,因为虚拟机是拷贝的,所以uuid可能会一一致,需要修改。

在这里插入图片描述

从数据库的uuid随便改个字母,不跟主数据库一样就可以了

在这里插入图片描述
重启一下:systemctl restart mysqld
在这里插入图片描述

重新登录

mysql -uroot -p 登录mysql

stop slave; 停止链路

start slave; 启动链路

show slave status \G; 查看链路

在这里插入图片描述
成功变成两个yes

不过下面有显示一个错误,先不理。

在这里插入图片描述

原因只是查看的时候 \G 多了个 ; 分号而已,去掉就好了。

在这里插入图片描述

2、service_id

这个是查看service_id的,影响不大。上面的uuid改好就可以了

2、查看service_id 是否因为两个虚拟机是拷贝的而出现id一致的情况

在数据库里面输入命令查看:show variables like ‘server_id’;

发现主节点是 150 , 从节点是1(这个应该是我们设置的152,要重启mysql看看),并没有重复

在这里插入图片描述

重启数据库,这个value的值变成 152 才是正确的
在这里插入图片描述

start slave 后 变成两个no了
在这里插入图片描述
重新 reset slave 设置下就可以了

在这里插入图片描述

现在又回到刚刚一个yes的问题,两个sql的uuid是一样的,修改成不一样的就好了

防火墙要关的才能同步数据

3、读写不同步
方法1:

原因:主从配置的position不一致,时间太久导致主数据库的position变了,应该是这个原因

主节点的position变了
在这里插入图片描述

要在从节点修改下

在这里插入图片描述
修改:

stop slave; 不知道用不用先停掉再改,现在我是先停掉了。

在这里插入图片描述

1、mysql -uroot -p 登录mysql

2、stop slave; 停止链路

3、修改master_log_pos=xxxxxx(改这个);把下面整行都重新设置

在mysql输入这些命令
change master to master_host='192.168.209.150',master_user='root',master_password='123456',master_log_file='master-bin.000001',master_log_pos=156;

在这里插入图片描述

4、start slave; 启动链路

5、show slave status \G; 查看链路

又好了。
在这里插入图片描述
但是只要测试一次,下一次又不行了。

方法2:

这个是百度其他办法,也是改后只成功一次

mysql> stop slave ;
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
mysql> start slave ;

在这里插入图片描述

暂时先不理

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【VR】【Unity】如何调整Quest2的隐藏系统时间日期

【背景】 网络虽然OK,但是Oculus Quest要连上商店还必须调整好系统时间,不过在Quest系统中,时间对用户是不可见的,本篇介绍调整的方法。 【方法】 打开SideQuest,没有的话先去下载一个。打开后先登录,如…

该方法仅能传入 lambda 表达式产生的合成类

说明:使用Mybatis-plus查询记录时,出现下面的错误; org.apache.ibatis.builder.BuilderException: Error evaluating expression ew.sqlSegment ! null and ew.sqlSegment ! and ew.nonEmptyOfWhere. Cause: org.apache.ibatis.ognl.OgnlEx…

TikTok Shop美国本土店VS跨境店,如何选择?有何区别?

TikTok不仅仅是一个用于分享有趣短视频的平台,它也逐渐成为了商家们极力推广自己品牌和产品的场所。 在TikTok的商业生态系统中,存在几种不同的商店类型,各有其独特性和适用场景。今天,我们就来深入探讨这些店的差异与特点。 一、…

基于Python的车牌识别系统实现

目录 一、图像预处理 二、车牌区域定位 三、字符分割 四、字符识别 五、代码总结 随着人工智能和计算机视觉的不断发展,车牌识别系统成为了智能交通领域中的重要研究方向。Python作为一种流行的编程语言,具有易学易用、开发效率高等优点&#xff0c…

Unity 镜面反射

放置地板和模型 首先,让我们放置地板和将放置在其上的 3D 模型。这次,我使用 Plane 作为地板。从层次视图中选择“创建”→“3D 对象”→“平面”。我们还在地板上放置了 Unity-chan、Cube 和 Sphere。 接下来,创建地板的材质。在项目视图中…

01、MySQL-------性能优化

目录 一、影响性能的相关因素存储过程: 二、sql优化1>、Mysql系统架构2>、引擎区别: 3>、索引1、什么是索引?联合主键索引理解:索引长度理解:什么是慢查询? 1)、索引理解2)…

MSQL系列(六) Mysql实战-SQL语句优化

Mysql实战-SQL语句优化 前面我们讲解了索引的存储结构,BTree的索引结构,以及索引最左侧匹配原则,Explain的用法,可以看到是否使用了索引,今天我们讲解一下SQL语句的优化及如何优化 文章目录 Mysql实战-SQL语句优化1.…

【Docker】Docker网络及容器间通信详解

目录 背景 默认网络 1、bridge 网络模式 2、host 网络模式 3、none 网络模式 4、container 网络模式 自定义网络 容器间网络通信 IP通信 Docker DNS server Joined容器 前言 本实验通过docker DNS server和joined 容器两种方法实现Docker容器间的通信。Docker容器间…

hue实现对hiveserver2 的负载均衡

如果你使用的是CDH集群那就很是方便的 在Cloudera Manager中,进入HDFS Service 进入Instances标签页面,点击Add Role Instances按钮,如下图所示 点击Continue按钮,如下图所示 返回Instances页面,选择HttpFS角色…

新加坡服务器托管

新加坡是一个小而繁荣的国家,是东南亚唯一一个发达国家。它地理位置好,毗邻马来西亚和印度尼西亚,新加坡是一个拥有先进科技和强大经济的国家,主要以制造业、金融、旅游和航运为主,拥有先进的经济和现代化的基础设施&a…

Python入门指南

概述: Python是一种简单易学、功能强大的编程语言,广泛应用于数据分析、Web开发、人工智能等领域。本文将为初学者提供一个Python入门指南,从安装到基本语法,帮助您开始编写Python程序。 第一部分:安装Python 1、进入…

C++ 友元

采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数…

DC电源模块的模拟电源对比数字电源的优势有哪些?

BOSHIDA DC电源模块的模拟电源对比数字电源的优势有哪些? DC电源模块是一种电子元件,用于将交流电转换为直流电,以供电路板、集成电路等电子设备使用。在直流电源模块中,有模拟电源和数字电源两种类型。 模拟电源是一种传统的电源…

移动硬盘被格式化了如何恢复数据?四步教你如何恢复

在日常生活中,我们常常会使用各种存储设备来保存和备份我们的重要数据。移动硬盘作为一种便携式的存储设备,被广泛应用于数据的存储和传输。然而,有时候我们会不小心将移动硬盘格式化,从而丢失了里面的数据。本文将介绍移动硬盘格…

【SA8295P 源码分析 (三)】97 - QNX AIS Camera 框架介绍 及 Camera 工作流程分析

【SA8295P 源码分析】97 - QNX AIS Camera 框架介绍 及 Camera 工作流程分析 一、QNX AIS Server 框架分析二、QNX Hypervisor / Android GVM 方案介绍三、Camera APP 调用流程分析四、QCarCam 状态转换过程介绍五、Camera 加串-解串 硬件链路分析六、摄像头初始化检测过程介绍…

基于MATLAB的图像条形码识别系统(matlab毕毕业设计2)

摘要 : 本论文旨在介绍一种基于MATLAB的图像条形码识别系统。该系统利用计算机视觉技术和图像处理算法,实现对不同类型的条形码进行准确识别。本文将详细介绍系统学习的流程,并提供详细教案,以帮助读者理解和实施该系统。 引言…

软件项目管理【UML-组件图】

目录 一、组件图概念 二、组件图包含的元素 1.组件(Component)->构件 2.接口(Interface) 3.外部接口——端口 4.连接器(Connector)——连接件 4.关系 5.组件图表示方法 三、例子 一、组件图概念…

LVS+Keepalived 实验

Keepalived 是什么 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题的一款检查工具 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器…

Vue笔记_插件组件_lucky-canvas抽奖转盘

文章目录 官网使用(vue2.x)[1] 下载[2] 引入[3] 使用配置项-width/height配置项-blocks配置项-prizes配置项-buttons优化案例 lucky-canvas 是一个基于 Js Canvas 的抽奖 web 前端组件,提供 大转盘和 九宫格两种抽奖界面,UI 精美,功能强大…

2020年12月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python编程(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 要对二维列表所有的数据进行格式化输出,打印成表格形状,程序段如下: ls [[金京,89],[…