Linux--运维

news2025/1/21 14:06:06

Mysql主从同步

通过将MySQL的某一台主机(master)的数据复制到其他主机(slaves)上,并重新执行一遍来执行 复制过程中一台服务器充当主服务器,而其他一个或多个其他服务器充当从服务器

为什么要做主从复制

灾备

数据分布

负载平衡

读写分离

提高并发能力

主从复制原理

主要基于MySQL二进制日志 主要包括三个线程(2个I/O线程,1个SQL线程)

1、MySQL将数据变化记录到二进制日志中;
2、Slave将MySQL的二进制日志拷贝到Slave的中继日志中;
3、Slave将中继日志中的事件在做一次,将数据变化,反应到自身(Slave)的数据库

详细步骤:
1、从库通过手工执行change master to 语句连接主库,提供了连接的用户一切条件(user 、password、port、ip),并且让从库知道,二进制日志的起点位置(file名 position 号); start slave
2、从库的IO线程和主库的dump线程建立连接。
3、从库根据change master to 语句提供的file名和position号,IO线程向主库发起binlog的请求。
4、主库dump线程根据从库的请求,将本地binlog以events的方式发给从库IO线程。
5、从库IO线程接收binlog events,并存放到本地relay-log中,传送过来的信息,会记录到master.info中
6、从库SQL线程应用relay-log,并且把应用过的记录到relay-log.info中,默认情况下,已经应用过的relay 会自动被清理purge

 实验:

使用binlog技术实现一台服务器与两台客户端的mysql主从同步

1.准备工作(一台终端设备,以及两台客户端)

终端设备:192.168.88.8

客户端1:192.168.88.9

客户端2:192.168.88.10

(1)关闭防火墙与SELinux

[root@localhost ~]# systemctl stop firewalld        #关闭防火墙

[root@localhost ~]# setenforce 0                #将SELinux改为宽容模式

 

(2)下载Mysql,使用在线安装Mysql(节省时间并且linux自带mysql的root用户没有密码) 

 [root@localhost ~]# yum -y install mysql

 

2.主库配置

(1)定义服务id,在mysql的配置文件中

 [root@localhost ~]# vim /etc/my.cnf

        server_id=1                #在[mysqld]配置下添加

 (2)重启mysql

[root@localhost ~]# systemctl restart mysqld

(3)备份需要的数据库

        先查看有哪些数据库

mysql> show databases;

 

        备份数据库

 [root@localhost ~]# mysqldump --opt -B db1 school > db.sql

(4)创建用户并授权

 mysql> create user rep@'192.168.88.%' identified with mysql_native_password by '123456';                 #创建提供远程登录的用户
mysql> grant replication slave on *.* to rep@'192.168.88.%';        #赋予该账号最高权限

 (5)查看master信息

mysql> show master status;

 

 3.从库配置

(1)定义服务id

[root@client ~]# vim /etc/my.cnf

        server_id=2          #在[mysqld]配置下添加

[root@client ~]# vim /etc/my.cnf

        server_id=3          #在[mysqld]配置下添加

 

(2)重启MySQL服务

[root@localhost ~]# systemctl restart mysqld

(3)配置从库的服务

mysql> change master to
    -> master_host='192.168.88.8',
    -> master_user='rep',
    -> master_password='123456',
    -> master_log_file='binlog.000002',
    -> master_log_pos=716;
Query OK, 0 rows affected, 9 warnings (0.00 sec)

mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.01 sec)

(4)检测配置是否成功

 mysql> show slave status \G

 显示两个yes证明是成功

(5)报错修改

mysql replication 中slave机器上有两个关键的进程,死一个都不行,
一个是slave_sql_running,
一个是Slave_IO_Running,
一个负责与主机的io通信,
一个负责自己的slave mysql进程。

Slave_IO_Running: Connecting / No

        检查是否是防火墙未关闭 ,或者是 Master_Log_File的名字不匹配

1.重新关闭防火墙

2.     mysql> slave stop;                 
        mysql>CHANGE MASTER TO MASTER_LOG_FILE='binlog.****** ';  #修改名称
        mysql> slave start;                               
        mysql> show slave status\G      

 Slave_SQL_Running: No

        1.程序可能在slave上进行了写操作
        2.也可能是slave机器重起后,事务回滚造成的.

 解决办法:
mysql> stop slave ;
mysq1>Set GLOBALE SQL SLAVE SKIP COUNTER=1.
mysql> start slave

4.测试

(1)客户端是否可以登录主数据库

[root@client ~]# mysql -u rep -h 192.168.88.8 -p         #-h 远程登录,属于设备ip

Enter password:

 

 

(2)测试数据是否同步 

mysql> create database db3;        #创建一个数据库
Query OK, 1 row affected (0.01 sec)

服务端 192.168.88.8

客户端192.168.88.9

 

客户端192.168.88.10

 

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

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

相关文章

【odbc】odbc连接kerberos认证的 hive和spark thriftserver

hive odbc驱动,以下两种都可以 教程:使用 ODBC 和 PowerShell 查询 Apache HiveHive ODBC Connector 2.8.0 for Cloudera Enterprise spark thriftserver本质就是披着hiveserver的外壳的spark server 完成kerberos认证: (1)可以…

家政服务小程序,打造智慧家政新体验

春节即将来临,家政市场呈现出了火热的场景,大众对家政服务的需求持续增加。 近年来,家政市场开始倾向数字化、智能化,借助科学技术打造家政数字化平台,让大众在手机上就可以预约家政服务,减少传统家政市场…

SQL在线格式化 - 加菲工具

SQL在线格式化 - 加菲工具 打开网站 加菲工具 https://www.orcc.online 选择“SQL 在线格式化” 或者直接访问网址 https://www.orcc.online/tools/sql 输入sql,点击上方的格式化按钮即可 输入框得到格式化后的sql结果

WPF1-从最简单的xaml开始.md

1. 最简单的WPF应用 1.1. App.config1.2. App.xaml 和 App.xaml.cs1.3. MainWindow.xaml 和 MainWindow.xaml.cs 2. 正式开始分析 2.1. 声明即定义2.2. 命名空间 2.2.1. xaml的Property和Attribute2.2.2. xaml中命名空间2.2.3. partial关键字 学习WPF,肯定要先学…

cursor重构谷粒商城02——30分钟构建图书管理系统【cursor使用教程番外篇】

前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。 本项目将基于谷粒商城…

Linux探秘坊-------3.开发工具详解(1)

1 初识vim编辑器 创建第一个vim编辑的代码 1.新建文件 2.使用vim打开 3.打开默认是命令模式,写代码需要在屏幕上输出“i”字符 1.写完代码后要按Esc键退出到指令模式2.再按shift:wq即可保存并退出vim (因为不支持鼠标,通常 使用键盘上的箭…

ESP-Skainet语音唤醒技术,设备高效语音识别方案,个性化交互应用

在当今数字化、智能化飞速发展的时代,物联网(IoT)与人工智能(AI)的深度融合正在重塑我们的生活和工作方式。 在智能家居的生态系统中,语音唤醒技术不仅能够为用户提供个性化的服务,还能通过定制…

25西湖ctf

2025西湖冬季 图片不全去我blog找👇 25西湖 | DDLS BLOG 文章所有参考将在文末给出 web web1 ssti 太简单的不赘述,知道用就行 {{cycler.__init__.__globals__.__builtins__[__import__](os).popen($(printf "\150\145\141\144\40\57\146\1…

Linux C\C++方式下的文件I/O编程

【图书推荐】《Linux C与C一线开发实践(第2版)》_linux c与c一线开发实践pdf-CSDN博客 《Linux C与C一线开发实践(第2版)(Linux技术丛书)》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 Lin…

python轻量级框架-flask

简述 Flask 是 Python 生态圈中一个基于 Python 的Web 框架。其轻量、模块化和易于扩展的特点导致其被广泛使用,适合快速开发 Web 应用以及构建小型到中型项目。它提供了开发 Web 应用最基础的工具和组件。之所以称为微框架,是因为它与一些大型 Web 框架…

python+pygame+pytmx+map editor开发一个tiled游戏demo 05使用object层初始化player位置

代码 import mathimport pygame# 限制物体在屏幕内 import pytmxdef limit_position_to_screen(x, y, width, height):"""限制物体在屏幕内"""x max(0, min(x, SCREEN_WIDTH - width)) # 限制x坐标y max(0, min(y, SCREEN_HEIGHT - height))…

上位机工作感想-2024年工作总结和来年计划

随着工作年限的增增长,发现自己越来越不喜欢在博客里面写一些掺杂自己感想的东西了,或许是逐渐被工作逼得“成熟”了吧。2024年,学到了很多东西,做了很多项目,也帮别人解决了很多问题,唯独没有涨工资。来这…

Ubuntu离线docker compose安装DataEase 2.10.4版本笔记

1、先准备一个可以正常上网的相同版本的Ubuntu系统,可以使用虚拟机。Ubuntu系统需要安装好docker compose或docker-compose 2、下载dataease-online-installer-v2.10.4-ce.tar在线安装包,解压并执行install.sh进行安装和启动 3、导出docker镜像 sudo d…

Web开发 -前端部分-CSS-2

一 长度单位 代码实现&#xff1a; <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…

Data Filtering Network 论文阅读和理解

目录 一、TL&#xff1b;DR 二、Introduction 2.1 apple的结论 2.2 业界做法&#xff1a; 2.3 我们的做法&#xff08;Apple&#xff09; 2.4 如何获取好的DFN 三、未完待续&#xff08;这周出去购物了&#xff0c;下周继续补充&#xff09; 一、TL&#xff1b;DR 核心…

计算机网络 (48)P2P应用

前言 计算机网络中的P2P&#xff08;Peer to Peer&#xff0c;点对点&#xff09;应用是一种去中心化的网络通信模式&#xff0c;它允许设备&#xff08;或节点&#xff09;直接连接并共享资源&#xff0c;而无需传统的客户端-服务器模型。 一、P2P技术原理 去中心化架构&#…

.Net Core微服务入门全纪录(五)——Ocelot-API网关(下)

系列文章目录 1、.Net Core微服务入门系列&#xff08;一&#xff09;——项目搭建 2、.Net Core微服务入门全纪录&#xff08;二&#xff09;——Consul-服务注册与发现&#xff08;上&#xff09; 3、.Net Core微服务入门全纪录&#xff08;三&#xff09;——Consul-服务注…

Python网络自动化运维---SSH模块

目录 SSH建立过程 实验环境准备 一.SSH模块 1.1.Paramiko模块 1.1.1实验代码 1.1.2代码分段讲解 1.1.3代码运行过程 1.2Netmiko模块 Netmiko模块对比paramiko模块的改进&#xff1a; 1.2.1实验代码 1.2.2代码分段讲解 1.2.3代码运行过程 二.Paramiko模块和Ne…

Linux:进程概念详解

进程详解 一、冯诺依曼计算机体系&#xff08;一&#xff09;体系概念&#xff08;二&#xff09;计算机之间的数据传输 二、操作系统&#xff08;一&#xff09;操作系统设计的意义&#xff08;二&#xff09;操作系统的管理功能&#xff08;三&#xff09;系统调用的实质 三、…

【数据分享】1929-2024年全球站点的逐年平均气温数据(Shp\Excel\无需转发)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;其中又以气温指标最为常用&#xff01;说到气温数据&#xff0c;最详细的气温数据是具体到气象监测站点的气温数据&#xff01;本次我们为大家带来的就是具体到气象监…