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

news2024/11/16 13:26:24

目录

  • 七、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=150
   log-bin=master-bin
   log-bin-index=master-bin.index
2,启动主服务器(就是启动mysql);
3,执行show master status; 查看主服务器状态;
4,复制当前主服务器中的数据库内容;
5,在从服务器中创建主服务器数据库;
6,在从服务器vi /etc/my.cnf中添加:
	server-id=152
	relay-log-index=slave-relay-bin.index
	relay-log=slave-relay-bin 
7,启动从服务器(就是启动mysql);
8,在从服务中执行:
解释:
	change master to master_host='192.168.209.150', //Master 服务器Ip
	master_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 \G
     
     
10,在主服务器中添加一条数据,查看在从服务器中是否同步成功;
//注意克隆服务器,需要 
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.coloradmin.cn/o/1113668.html

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

相关文章

解决 sharp: Installation error: unable to verify the first certificate

使用 plasmo 时报错如下: E:\chromeplugins>pnpm create plasmo ../.pnpm-store/v3/tmp/dlx-46852 | 2 ../.pnpm-store/v3/tmp/dlx-46852 | Progress: resolved 2, reused 2, downloaded 0, added 2, done 🟣 Plasmo v0.83.0 &…

开源云财务软件,财务软件源码,永久免费财务软件

纷析云SAAS云财务软件开源版 包含账套、凭证字、科目、期初、币别、账簿、报表、凭证、结账 技术交流群 扫码添加客服进群 商业版地址 纷析云商业版https://f3.fenxi365.com/ 正式环境,可注册账号直接使用或测试 功能对比 功能模块开源版商业版[技术重构]凭证✔…

微信小程序文本横向无缝滚动

背景: 微信小程序中列表宽度不够长,其中某字段显示不完整,因此要使其自动滚动。 (最初看网上很多用定时器实现,但他们的案例中都只是一个横幅、用定时器也无所谓。但是我的需求中是一个上下无限滚动的列表,…

【C++】详解priority_queue(优先级队列)与函数对象

目录 一、priority_queue 的介绍和使用 1.1priority_queue 的介绍 2.2priority_queue 的使用 二、仿函数 2.1什么是仿函数 2.2仿函数的作用 三、函数对象的特点(知识点多) 3.1分析特点5(比较普通函数与函数对象) 3.1.1利…

如何快速高效全面的学习自然语言处理

文章目录 🌟 如何快速高效全面的学习自然语言处理🍊 学习基础知识🎉 语言学🎉 统计学和信息论🎉 机器学习🎉 计算机科学 🍊 学习NLP技术🎉 语言模型🎉 词向量&#x1f38…

IK分词器如何修改支持跨版本ES

一、问题描述:IK分词器版本和ES版本不一致,无法找到和自己ES版本匹配的分词器。 IK分词器,提供的插件版本,远赶不上ES的更新版本,在使用过程中,不一定能顺利的找到与自己使用的ES版本相对应。在ES集群中使用…

揭开MyBatis的神秘面纱:掌握动态代理在底层实现中的精髓

一日小区漫步,我问朋友:Mybatis中声明一个interface接口,没有编写任何实现类,Mybatis就能返回接口实例,并调用接口方法返回数据库数据,你知道为什么不? 朋友很是诧异:是啊&#xff…

2023年全球及中国层析系统市场发展趋势分析:未来层析设备市场将持续增长[图]

完整的层析系统主要包含泵、各种阀门、层析柱、各种在位检测器和收集器。层析系统包含层析输液系统和层析柱两个主要部分,层析柱根据结构和内径不同分为手动层析柱、自动轴向压缩层析柱、自动喷胶层析柱等。 层析系统主要部分 资料来源:共研产业咨询&am…

Leetcode—2529.正整数和负整数的最大计数【简单】

2023每日刷题&#xff08;四&#xff09; Leetcode—2529.正整数和负整数的最大计数 遍历法实现代码 int maximumCount(int* nums, int numsSize){int i;int neg 0, pos 0;for(i 0; i < numsSize; i) {if(nums[i] < 0) {neg;}if(nums[i] > 0) {pos;}}return (neg…

【数据结构】线性表(五)跳表及其基本操作(定义、创建、查找、插入、删除)

目录 前言 1. 单链表 跳表&#xff08;Skip List&#xff09; 0. 概念 1. 数据结构 a. 跳表节点结构SkipListNode b. 跳表结构SkipList 2. 辅助函数 a. 初始化节点 b. 初始化跳表 c. 生成随机层数 3. 查找节点 4. 插入节点 5. 删除节点 6. 主函数 代码整合 前言…

Java基础--》做个简易的计算器

使用多态实现计算器的加减乘除&#xff0c;根据运算符不同实例化不同子类进行计算&#xff08;运算符可键盘接收输入&#xff09; 例如&#xff1a;加法有num1、num2属性&#xff0c;方法&#xff1a;计算求和减法有num1、num2属性&#xff0c;方法&#xff1a;计算求差乘法有…

【Java异常】什么是异常,Java中如何处理异常?

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ Java异常处理 1. 了解异常&#xff1a;2. 异常…

人大金仓与哪吒科技达成战略合作,加快推动智慧港口建设

近日&#xff0c;人大金仓与哪吒港航智慧科技&#xff08;上海&#xff09;有限公司&#xff08;以下简称“哪吒科技”&#xff09;达成战略合作。双方旨在共享优势资源&#xff0c;联合为港口企业转型升级提供完备的技术支撑与行业解决方案。人大金仓总裁杜胜、哪吒科技总经理…

财务系统的报账页面设计

报账&#xff0c;指各部门向财务部报送账单&#xff0c;财务审批后予以结算。 报账的做法&#xff0c;小公司可能会少一些&#xff0c;大公司会多一些。小公司人员少&#xff0c;沟通快捷&#xff0c;运转效率高&#xff0c;老板予以口头肯定后财务直接付款了。大公司的部门很多…

wpf主页面解析

1、 开头的网址作用 1和2都是引入命名空间的&#xff0c;每一个字符串代表一系列的命名空间&#xff0c;这样就可以不用一个一个引用了。wpf中规定有一个名称空间是可以不加名字的&#xff0c;xmlns不加名字是默认命名空间。 "http://schemas.microsoft.com/winfx/2006/x…

如何利用开源考试系统进行在线远程考试?

在当前全球疫情的影响下&#xff0c;远程教育和在线考试的需求日益增长。开源考试系统成为一种受欢迎的选择&#xff0c;它为教师和学生提供了便利的远程考试解决方案。 选择适合自己需求的开源考试系统是至关重要的。多种开源考试系统在市场上可供选择。教师应根据自己的教学…

海外版知乎Quora,如何使用Quora进行营销?

想必大家对知乎非常熟悉&#xff0c;而Quora作为海外最受欢迎的网站之一&#xff0c;是与知乎功能与性质非常相似的一个平台&#xff0c;靠回答别人的问题获得关注&#xff0c;是引流最快的一个平台。对于做跨境电商、独立站的商家来说&#xff0c;这是一个绝佳的免费引流广告工…

ABAP程序不报错缺出错---解决

ALV字段名不显示 自建的透明表 REPORT ZTXYY_1123. DATA: gr_alv TYPE REF TO cl_salv_table,gr_columns TYPE REF TO cl_salv_columns_table. DATA: ZPL_LIST TYPE TABLE OF ZPL_EINVOICE_LOG. CALL METHOD cl_salv_table>factory IMPORTINGr_salv_table gr_alv CHAN…

点云处理【四】(点云关键点检测)

第一章 点云数据采集 第二章 点云滤波 第二章 点云降采样 1.点云关键点是什么&#xff1f; 关键点也称为兴趣点&#xff0c;它是2D图像、3D点云或曲面模型上&#xff0c;可以通过定义检测标准来获取的具有稳定性、区别性的点集。 我们获得的数据量大&#xff0c;特别是几十万…

C++模拟实现——list

一、成员变量及其基本结构 1.基本结构模型 本质是一个带头双向循环列表&#xff0c;将节点进行封装&#xff0c;并且为了方便使用&#xff0c;进行重定义 2.节点的封装定义 template<class T>//定义节点struct list_node{list_node<T>* _prev;list_node<T>…