Mysql 数据库主从复制-CSDN

news2024/11/24 13:38:08

查询两台虚拟机的IP

主虚拟机IP

从虚拟机IP服务

修改对应的配置文件

查询对应配置文件的命令
find / -name my.cnf

编辑对应的配置文件

主 my.cnf (部分配置)
[mysqld]
########basic settings########
server_id = 1
log_bin = /var/log/mysql/mysql-bin.log
port = 3306
socket  = /home/mysql/mysql8/mysql.sock
datadir = /home/mysql/mysql8
default_authentication_plugin=mysql_native_password
binlog_do_db = stms
  1. server-id = 1
    • server-id是一个必需的配置项,用于在MySQL复制环境中唯一标识每个服务器实例。在主从复制设置中,每个服务器必须有一个唯一的server-id。值1通常用于主服务器。
  2. log_bin = /var/log/mysql/mysql-bin.log
    • log_bin指定二进制日志文件的位置和名称。二进制日志记录了所有对数据库执行的更改操作,这对于复制和恢复操作至关重要。/var/log/mysql/mysql-bin.log是日志文件的路径和名称,可以根据实际需要进行调整。
从 my.cnf 配置
server_id = 2
gtid_mode=ON
enforce_gtid_consistency=ON

在MySQL的配置文件中,[mysqld]部分包含了MySQL服务器实例的配置指令。以下是对您提供的配置指令的解释:

  1. server-id = 2
    • server-id是一个必需的配置项,用于在MySQL复制环境中唯一标识每个服务器实例。在主从复制设置中,每个服务器必须有一个唯一的server-id。值2通常用于从服务器。
  2. relay_log = /var/log/mysql/mysql-relay-bin.log
    • relay_log指定中继日志文件的位置和名称。中继日志用于存储从主服务器接收到的二进制日志事件,然后由从服务器的SQL线程读取并执行这些事件。/var/log/mysql/mysql-relay-bin.log是中继日志文件的路径和名称,可以根据实际需要进行调整。
  3. read_only = 1
    • read_only是一个可选的配置项,当设置为1时,它将使MySQL服务器进入只读模式。在这种模式下,除了具有SUPER权限的用户外,所有客户端的写操作(如INSERT, UPDATE, DELETE)都将被拒绝。这通常用于从服务器,以防止数据被意外修改,确保从服务器的数据与主服务器保持一致。

重启MYSQL服务

service mysqld stop
service mysqld start
主从均重启

主服务器操作

  • 登录到MySQL控制台:
mysql -u root -p
  • 创建复制用户并授权:
CREATE USER 'replica_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
ALTER USER 'replica_user'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
  • 记录当前的二进制日志文件名和位置:
SHOW MASTER STATUS;

进行数据库锁表

FLUSH TABLES WITH READ LOCK;

进行全量备份

mysqldump -u aisino_app -p --databases stms  --master-data > backup.sql

将备份文件传输到从服务器:

scp backup.sql user@slave_ip:/path/to/backup.sql

scp backup.sql user@slave_ip:/path/to/backup.sql 是一条命令,用于在Linux或Unix系统中通过SSH(Secure Shell)安全地复制文件。这条命令的具体组成部分如下:

  • scp: 是Secure Copy的缩写,是一个命令行工具,用于在本地系统和远程系统之间或者两个远程系统之间安全地复制文件。
  • backup.sql: 这是要复制的源文件,位于当前执行scp命令的本地系统上。
  • user@slave_ip: user是远程服务器(从服务器)上的用户名,slave_ip是远程服务器的IP地址。这个部分指定了文件要复制到的目标服务器。
  • :/path/to/backup.sql: 这是文件在远程服务器上的目标路径和文件名。:表示紧随其后的路径是远程服务器上的路径。

整条命令的含义是:将本地文件backup.sql通过SSH安全地复制到远程服务器slave_ip上,使用用户user进行认证,并将文件放置在远程服务器上的/path/to/backup.sql路径下。
在执行此命令时,系统会提示输入远程用户user的密码(除非设置了无密码SSH登录),以完成文件的复制过程。

从服务器操作

从数据库恢复数据

mysql -u root -p < /path/to/backup.sql
配置从库复制

查看 server_id

SHOW VARIABLES LIKE 'server_id';

±--------------±------+
| Variable_name | Value |
±--------------±------+
| server_id | 0 |
±--------------±------+
使用获取的主库二进制日志文件名和位置配置从库:

CHANGE REPLICATION SOURCE TO
  SOURCE_USER='replica_user',
  SOURCE_PASSWORD='123456',
  SOURCE_HOST='192.168.44.142',
  SOURCE_PORT=3306,
  SOURCE_LOG_FILE='taxdb-bin.000045',
  SOURCE_LOG_POS=245;

请确保在执行此命令之前,你已经创建了用于复制的用户 replica_user,并且该用户在主服务器(192.168.44.142)上具有适当的权限。
执行完上述命令后,你可以使用以下命令启动复制:

START REPLICA;

通过执行 SHOW REPLICA STATUS\G; 来检查复制状态,确保 Replica_IO_Running 和 Replica_SQL_Running 都是 Yes。

mysql> SHOW REPLICA STATUS\G;
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: 192.168.44.142
                  Source_User: replica_user
                  Source_Port: 3306
                Connect_Retry: 60
              Source_Log_File: taxdb-bin.000045
          Read_Source_Log_Pos: 245
               Relay_Log_File: localhost-relay-bin.000002
                Relay_Log_Pos: 326
        Relay_Source_Log_File: taxdb-bin.000045
           Replica_IO_Running: Yes
          Replica_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_Source_Log_Pos: 245
              Relay_Log_Space: 540
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Source_SSL_Allowed: No
           Source_SSL_CA_File: 
           Source_SSL_CA_Path: 
              Source_SSL_Cert: 
            Source_SSL_Cipher: 
               Source_SSL_Key: 
        Seconds_Behind_Source: 0
Source_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Source_Server_Id: 1
                  Source_UUID: 200dbdd5-dc52-11ee-8954-000c29f27890
             Source_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
    Replica_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Source_Retry_Count: 86400
                  Source_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Source_SSL_Crl: 
           Source_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 200dbdd5-dc52-11ee-8954-000c29f27890:1-28913
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Source_TLS_Version: 
       Source_public_key_path: 
        Get_Source_public_key: 0
            Network_Namespace: 

解除主数据只读

UNLOCK TABLES;
FLUSH PRIVILEGES;

税金3.0更新用户查看效果

从库

税金新增用户后,从库自动同步

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

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

相关文章

【大模型LLM面试合集】大语言模型基础_LLM为什么Decoder only架构

LLM为什么Decoder only架构 为什么现在的LLM都是Decoder only的架构&#xff1f; LLM 是 “Large Language Model” 的简写&#xff0c;目前一般指百亿参数以上的语言模型&#xff0c; 主要面向文本生成任务。跟小尺度模型&#xff08;10亿或以内量级&#xff09;的“百花齐放”…

聊一下Maven打包的问题(jar要发布)

文章目录 一、问题和现象二、解决方法&#xff08;1&#xff09;方法一、maven-jar-pluginmaven-dependency-plugin&#xff08;2&#xff09;方法二、maven-assembly-plugin 一、问题和现象 现在的开发一直都是用spring boot&#xff0c;突然有一天&#xff0c;要自己开发一个…

VSCode使用ipynb文件高效地进行功能测试

一、ipynb是什么文件 .ipynb文件是Jupyter Notebook的专用格式&#xff0c;它允许用户在一个网页应用中混合编写Markdown文本、执行代码、查看输出结果及图表。Jupyter Notebook的本质是一个Web应用程序&#xff0c;支持运行40多种编程语言&#xff0c;包括Python。它的主要用…

Linux基础: 二. Linux的目录和文件

文章目录 二. Linux的目录和文件1.1 目录概要1.2 目录详细说明 二. Linux的目录和文件 1.1 目录概要 command&#xff1a;ls / Linux的文件系统像一棵树一样&#xff0c;树干是根目录&#xff08;/&#xff09;&#xff0c;树枝是子目录&#xff0c;树叶是文件&#xff1b; …

阿里云存储的降本增效与运维

小浩负责公司存储架构层&#xff0c;需要确保存储层不会成为公司业务系统的性能瓶颈&#xff0c;让数据读写达到最佳性能。那么小浩可以从哪些方面着手优化性能呢&#xff1f;他继续求助系统架构师大雷。 小浩&#xff1a;雷哥&#xff0c;PD反馈公司系统最近响应很慢&#xff…

C++学习/复习21--多态定义/虚函数与重写/虚函数表/单继承多继承的多态/抽象类/面试题

一、多态的定义及条件 二、虚函数与重写 2.1virtual 注意事项&#xff1a;只有成员函数可以是虚函数 2.2三同与重写 2.3用基类的指针或引用 注意事项&#xff1a;指针指向什么对象就调用其相应的函数 2.4重写条件的例外 协变与重写 析构函数的重写 为什么析构函数需重写 2.5o…

桂花网蓝牙网关X1000:引领物联网新时代的智能连接

在物联网技术飞速发展的今天&#xff0c;蓝牙网关作为连接蓝牙设备与互联网的关键设备&#xff0c;其性能与稳定性直接影响到物联网系统的整体运行效果。桂花网蓝牙网关X1000凭借其卓越的性能和广泛的应用场景&#xff0c;成为了物联网领域的佼佼者。 一、产品概述 桂花网蓝牙…

【WPF】桌面程序开发之xaml页面基础布局方式详解

使用Visual Studio开发工具&#xff0c;我们可以编写在Windows系统上运行的桌面应用程序。其中&#xff0c;WPF&#xff08;Windows Presentation Foundation&#xff09;项目是一种常见的选择。然而&#xff0c;对于初学者来说&#xff0c;WPF项目中xaml页面的布局设计可能是一…

【刷题汇总--字符串中找出连续最长的数字串、岛屿数量、拼三角】

C日常刷题积累 今日刷题汇总 - day0071、字符串中找出连续最长的数字串1.1、题目1.2、思路1.3、程序实现 -- 比较1.4、程序实现 -- 双指针 2、岛屿数量2.1、题目2.2、思路2.3、程序实现 - dfs 3、拼三角3.1、题目3.2、思路3.3、程序实现 -- 蛮力法3.4、程序实现 -- 巧解(单调性…

制冷软件SOLKANE单级制冷循环计算

SOLKANE软件下载 单级制冷循环参数介绍 输入数据&#xff1a; 1.蒸发器&#xff1a; 温度&#xff1a;蒸发温度t6&#xff08;露点温度&#xff09;。 过热&#xff1a;制冷剂t6-t6在蒸发器中过热。 压力损失&#xff1a;蒸发器入口和出口之间的压力下降。 制冷量&#x…

Git管理源代码、git简介,工作区、暂存区和仓库区,git远程仓库github,创建远程仓库、配置SSH,克隆项目

学习目标 能够说出git的作用和管理源代码的特点能够如何创建git仓库并添加忽略文件能够使用add、commit、push、pull等命令实现源代码管理能够使用github远程仓库托管源代码能够说出代码冲突原因和解决办法能够说出 git 标签的作用能够使用使用git实现分支创建&#xff0c;合并…

linux-5.10.110内核源码分析 - Freescale ls1012a pcie msi中断

1、dts msi控制器描述 1.1、dts描述 msi: msi-controller11572000 {compatible "fsl,ls1012a-msi";reg <0x0 0x1572000 0x0 0x8>;msi-controller;interrupts <0 126 IRQ_TYPE_LEVEL_HIGH>; };ls1012a msi控制器具体介绍可以参考官网手册”25.1.1 PC…

MySQL 中的 DDL、DML、DQL 和 DCL

文章目录 1. 数据定义语言&#xff08;DDL&#xff09;2. 数据操作语言&#xff08;DML&#xff09;3. 数据查询语言&#xff08;DQL&#xff09;4. 数据控制语言&#xff08;DCL&#xff09;总结 在 MySQL 数据库管理系统中&#xff0c;SQL 语句可以根据其功能分为不同的类别&…

玫瑰千层烤饼:味蕾的芬芳盛宴

在美食的缤纷世界里&#xff0c;有一种独特的存在&#xff0c;它融合了玫瑰的芬芳与烤饼的酥脆&#xff0c;那便是令人陶醉的甘肃美食玫瑰千层烤饼。食家巷玫瑰千层烤饼&#xff0c;宛如一件精心雕琢的艺术品。每一层薄如纸张的面皮&#xff0c;都承载着制作者的细腻与用心。层…

GD32实战篇-双向数控BUCK-BOOST-BOOST升压理论基础

本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发 向上代码兼容GD32F450ZGT6中使用 后续项目主要在下面该专栏中发布&#xff1a; https://blog.csdn.net/qq_62316532/category_12608431.html?spm1001.2014.3001.5482 感兴趣的点个关注收藏一下吧! 电机驱动开发可以跳转…

JavaWeb-【1】HTML

笔记系列持续更新,真正做到详细!!本次系列重点讲解后端,那么第一阶段先讲解前端 目录 1、Javaweb技术体系 2、BS架构说明 3、官方文档 4、网页组成 5、HTML 6、HTML快速入门 7、HTML基本结构 8、HTML标签 ​9、HTML标签使用细节 ①、font标签 ②、字符实体 ③、标…

【在Linux世界中追寻伟大的One Piece】HTTPS协议原理

目录 1 -> HTTPS是什么&#xff1f; 2 -> 相关概念 2.1 -> 什么是"加密" 2.2 -> 为什么要加密 2.3 -> 常见的加密方式 2.4 -> 数据摘要 && 数据指纹 2.5 -> 数字签名 3 -> HTTPS的工作过程 3.1 -> 只使用对称加密 3.2 …

Django之项目开发(一)

一、项目的生命周期介绍 传统Web 项目的生命周期指的是从开始构建一个网站到该网站完成并维护的整个过程。通常情况下,Web 项目的生命周期包括以下几个阶段 需求分析阶段:在这个阶段,项目组会与客户进行沟通,确定网站的功能、内容和设计。 主要由产品经理参与产出思路与方案…

谷粒商城学习笔记-逆向工程错误记录

文章目录 1&#xff0c;Since Maven 3.8.1 http repositories are blocked.1.1 在maven的settings.xml文件中&#xff0c;新增如下配置&#xff1a;1.2&#xff0c;执行clean命令刷新maven配置 2&#xff0c;internal java compiler error3&#xff0c;启动逆向工程报错&#x…

【qt】获取主机信息系统

话不多说,先一睹芳颜! 如果你也想达到这种效果,那咱们就开始吧! 目录 一.登录界面设计1.ui登录设计 二.加载界面1.lineEdit的密码输入模式2.lineEdit按回车跳转的信号3.密码的判断4.创建加载界面5.创建定时器来进行进度条的移动6.定时器执行的槽函数 三.主机信息界面1.主机信息…