Mysql 数据库主从复制-CSDN

查询两台虚拟机的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更新用户查看效果

从库

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 709. 转换成小写字母

leetcode 709. 转换成小写字母 题解 class Solution { public:string toLowerCase(string s) {string ans;for (int i 0; i < s.size(); i) {if (s[i] > A && s[i] < Z) {s[i] 32;}ans s[i];}return ans;} };

室内定位可视化:精准导航与实时位置展示

通过图扑室内定位可视化技术&#xff0c;提供精准的导航服务和实时位置展示&#xff0c;帮助用户高效找到目标地点&#xff0c;提升空间管理和资源配置的效率与体验。

【昇思25天学习打卡营打卡指南-第十九天】基于MobileNetv2的垃圾分类

CycleGAN图像风格迁移互换 模型介绍 模型简介 CycleGAN(Cycle Generative Adversarial Network) 即循环对抗生成网络&#xff0c;来自论文 Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 。该模型实现了一种在没有配对示例的情况下学习…

go语言的异常处理机制

error 在go语言中&#xff0c;异常被定义为实现了error接口的类型&#xff0c;error接口只定义了一个返回string类型Error&#xff08;&#xff09;方法&#xff0c;任何实现了Error()方法的类型都可以被定义为异常&#xff0c;以下是一个自定义的异常类型&#xff1a; typ…

【零基础】学JS

喝下这碗鸡汤 “知识就是力量。” - 弗朗西斯培根 1.三元运算符 目标:能利用三元运算符执行满足条件的语句 使用场景:其实是比if双分支更简单的写法&#xff0c;可以使用三元表达式 语法&#xff1a;条件 ? 满足条件的执行代码 : 不满足条件执行的代码 接下来用一个小案例来展…

昇思25天学习打卡营第十四天|Pix2Pix实现图像转换

训练营进入第十四天&#xff0c;今天学的内容是Pix2Pix图像转换&#xff0c;记录一下学习内容&#xff1a; Pix2Pix概述 Pix2Pix是基于条件生成对抗网络&#xff08;cGAN, Condition Generative Adversarial Networks &#xff09;实现的一种深度学习图像转换模型&#xff0c…

读书笔记-《魔鬼经济学》

这是一本非常有意思的经济学启蒙书&#xff0c;作者探讨了许多问题&#xff0c;并通过数据找到答案。 我们先来看看作者眼中的“魔鬼经济学”是什么&#xff0c;再选一个贴近我们生活的例子进行阐述。 01 魔鬼经济学 中心思想&#xff1a;假如道德代表人类对世界运转方式的期…

Vue 3集成krpano 全景图展示

Vue 3集成krpano 全景图展示 星光云全景系统源码 VR全景体验地址 星光云全景VR系统 将全景krpano静态资源文件vtour放入vue项目中 导入vue之前需要自己制作一个全景图 需要借助官方工具进行制作 工具下载地址&#xff1a;krpano工具下载地址 注意事项&#xff1a;vuecli…

LRU缓存算法设计

LRU 缓存算法的核⼼数据结构就是哈希链表&#xff0c;双向链表和哈希表的结合体。这个数据结构⻓这样&#xff1a; 创建的需要有两个方法&#xff0c;一个是get方法&#xff0c;一个是put方法。 一些问题&#xff1a;为什么需要使用双向链表呢&#xff1f;因为删除链表的本身&…

2-26 基于matlab开发的制冷循环模型

基于matlab开发的制冷循环模型。Simscape两相流域中的制冷循环模型&#xff0c;在simulink中完成多循环温度控制。程序已调通&#xff0c;可直接运行。 2-26 制冷循环模型 Simscape两相流域 - 小红书 (xiaohongshu.com)

Web3D引擎,three.js堪称扛把子,Babylon.js差点意思。

涉及到Web3D开发&#xff0c;Three.js和Babylon.js是两个备受推崇的引擎。它们都是基于WebGL的开源3D引擎&#xff0c;用于创建交互式的3D图形应用程序&#xff0c;但要细论起来&#xff0c;three.js普及度远超Babylon .js. 一、二者的介绍 Three.js&#xff1a; Three.js 是一…

Android仿今日头条新闻(一)

新建一个侧边栏的文件&#xff0c;创建成功后直接运行。可以看到带滑动的侧边栏功能如图所示&#xff1a; 主体UI&#xff1a; 新闻UI的实现: 侧边栏&#xff1a; 更换一下颜色&#xff1a; 学习参考-浩宇开发

Objects365数据集介绍

Objects365数据集介绍 什么是Objects365数据集&#xff1f;数据集的规模与内容数据集的特点数据集下载 什么是Objects365数据集&#xff1f; Objects365是一个大规模、高质量的物体检测数据集。该数据集旨在推动物体检测技术的发展&#xff0c;特别是在真实世界场景下的应用。O…

STM32-01 推挽输出-点亮LED

本文以STM32中点亮LED为例&#xff0c;解读推挽输出的原理 推挽输出介绍 所谓的推挽输出&#xff0c;就是通过控制输出控制模块&#xff0c;打开或者关闭P-MOS或者N-MOS。 ─ 推挽模式下&#xff1a;输出寄存器上的’0’激活N-MOS&#xff0c;而输出寄存器上的’1’将激活P-M…

尚品汇-(十三)

&#xff08;1&#xff09;查询sku列表 在ManageService 中添加 /*** SKU分页列表* param pageParam* return*/ IPage<SkuInfo> getPage(Page<SkuInfo> pageParam);接口实现类 Override public IPage<SkuInfo> getPage(Page<SkuInfo> pageParam) {Qu…

【双一流高校主办,Springer-LNICST出版,EI稳定检索】2024年应用计算智能、信息学与大数据国际会议(ACIIBD 2024,7月26-28)

2024年应用计算智能、信息学与大数据国际学术会议&#xff08;ACIIBD 2024&#xff09;将于2024年7月26-28日在中国广州举办。会议将聚焦于计算智能及其应用、信息、大数据等相关的研究领域&#xff0c; 广泛邀请国内外知名专家学者&#xff0c;共同探讨相关学科领域的最新发展…

Ubuntu + SSH密钥连接服务器

1. 下载VS code cd到下载文件夹后&#xff0c;使用命令安装&#xff0c;把xxx复制为文件名 sudo dpkg -i xxx.deb2. 为VSCode换皮肤 3. 下载SSH插件和Docker插件 4. 配置SSH 把密钥key文件放在/home/your_user_name/.ssh/里面&#xff0c;然后在/home/your_user_name/.ssh/c…

第1集《修习止观坐禅法要》

《修习止观坐禅法要》诸位法师&#xff0c;诸位学员&#xff0c;阿弥院佛&#xff01; 我们今天能够暂时放下世间的尘劳&#xff0c;大家在一起研究佛法的课程&#xff0c;这件事情在我们的生命当中是非常的稀有难得。 基本上&#xff0c;我们佛法的修习目的是追求身心的安乐…

基于vue的3D高德地图的引入

在引入高德地图的时候需要先注册一个账号 登录下面的网站 账号认证 | 高德控制台 (amap.com) 打开首页应用管理&#xff0c;我的应用 创建新的应用 根据自己的需求进行选择 创建完成之后&#xff0c;点击添加key 不同的服务平台对应不同的可使用服务&#xff0c;选择自己适…

3.js - 模板渲染 - 金属切面效果

md&#xff0c;狗不学&#xff0c;我学 源码 // ts-nocheck// 引入three.js import * as THREE from three// 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls// 导入lil.gui import { GUI } from three/examples/jsm/libs/lil-gui.m…