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 TOSOURCE_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 eventSource_Host: 192.168.44.142Source_User: replica_userSource_Port: 3306Connect_Retry: 60Source_Log_File: taxdb-bin.000045Read_Source_Log_Pos: 245Relay_Log_File: localhost-relay-bin.000002Relay_Log_Pos: 326Relay_Source_Log_File: taxdb-bin.000045Replica_IO_Running: YesReplica_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Source_Log_Pos: 245Relay_Log_Space: 540Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Source_SSL_Allowed: NoSource_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: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Source_Server_Id: 1Source_UUID: 200dbdd5-dc52-11ee-8954-000c29f27890Source_Info_File: mysql.slave_master_infoSQL_Delay: 0SQL_Remaining_Delay: NULLReplica_SQL_Running_State: Replica has read all relay log; waiting for more updatesSource_Retry_Count: 86400Source_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-28913Auto_Position: 0Replicate_Rewrite_DB: Channel_Name: Source_TLS_Version: Source_public_key_path: Get_Source_public_key: 0Network_Namespace: 

解除主数据只读

UNLOCK TABLES;
FLUSH PRIVILEGES;

税金3.0更新用户查看效果

从库

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

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

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

相关文章

gnome 建议安装的扩展

安装 扩展管理器&#xff1a; sudo apt install gnome-shell-extension-manager在 扩展管理器 里搜索并添加 扩展 推荐 Applications Menu&#xff1a;自带。左上角显示 应用程序 按钮&#xff0c;以下拉菜单分类显示应用RunCat&#xff1a;状态栏里显示一只猫和 cpu 利用率…

[激光原理与应用-98]:南京科耐激光-激光焊接-焊中检测-智能制程监测系统IPM介绍 - 2 - 什么是激光器焊接? 常见的激光焊接技术详解

目录 一、什么是激光焊接 1.1 概述 1.2 激光焊接的优点 二、激光焊接的应用 2.1 哪些场合必须使用激光焊接 1. 汽车制造业 2. 航空航天领域 3. 电子行业&#xff1a;消费类电子3C 4. 医疗器械制造 5. 新能源锂电池行业 6. 其他领域 三、激光焊接的分类 3.1 按焊接…

【ONLYOFFICE8.1】ONLYOFFICE8.1版本桌面编辑器测评

有宝子说office太贵&#xff0c;不适合个人和学生&#xff0c;而WPS不仅贵广告还多&#xff0c;那么有没有一款软件可以替代office和WPS呢&#xff1f;...当然有喽。当当当当&#xff01;它就是众望所归、备受好评的ONLYOFFICE。下面就和小编一起来探索和测评一下ONLYOFFICE8.1…

深入解析怀庄之醉酱酒的独特魅力

在众多美酒中&#xff0c;酱酒以其独有的风格和丰富的文化内涵&#xff0c;赢得了无数鉴赏家的青睐。本文旨在从专业角度深入探讨酱酒的空杯留香现象、典型色泽特性及品鉴技巧&#xff0c;揭示其背后的科学原理与艺术魅力&#xff0c;助您更全面地理解与欣赏这一中华传统佳酿。…

C++报错无法访问Private

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2248 “main::Person::~Person”: 无法访问 private 成员(在“main::Person”类中声明) #include<iostream> #include<ctime> int main() {using namespace std;class Person{//Per…

响应式设计的双璧:WebKit 支持 CSS Flexbox 和 Grid 布局深度解析

响应式设计的双璧&#xff1a;WebKit 支持 CSS Flexbox 和 Grid 布局深度解析 在现代网页设计中&#xff0c;响应式布局是实现跨设备兼容性的关键。CSS Flexbox 和 Grid 作为 CSS 布局的两大支柱&#xff0c;提供了强大的工具来构建灵活和复杂的用户界面。WebKit&#xff0c;作…

JS的块级作用域是什么

在JavaScript中&#xff0c;块级作用域&#xff08;Block Scope&#xff09;是指变量或函数在代码块&#xff08;如{}内的代码区域&#xff09;中声明后&#xff0c;其作用域被限制在这个块级结构内部。这意味着&#xff0c;块外部的代码无法访问块内部声明的变量或函数&#x…

Linux之三剑客(grep、sed、awk)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

LeetCode热题100刷题8:54. 螺旋矩阵、73. 矩阵置零、48. 旋转图像

54. 螺旋矩阵 class Solution { public:vector<int> spiralOrder(vector<vector<int>>& matrix) {vector<int> vec;if(matrix.empty())return vec;int left0;int right matrix[0].size()-1;int up0;int down matrix.size()-1;while(true) {for(i…

探索 WebKit 的网络脉络:深入网络栈的设计艺术

探索 WebKit 的网络脉络&#xff1a;深入网络栈的设计艺术 在当今这个以网页为中心的时代&#xff0c;WebKit 作为众多流行浏览器的心脏&#xff0c;其网络栈的设计对于网页内容的加载、处理和渲染起着至关重要的作用。本文将深入探讨 WebKit 网络栈的架构和设计&#xff0c;揭…

Nuxt:父子组件传值

在Nuxt中&#xff0c;父子组件间的数据传递数据有两种方法&#xff0c;如下 1、 props 父组件通过props将数据传递给子组件&#xff0c;子组件通过props接收数据。代码如下&#xff1a; <template><div><ChildLeft :msg"msg"></ChildLeft>…

代码随想录-DAY④-相交链表经典三解——leetcode 160

解法一&#xff1a;哈希集合 思路 将链表 A 中的每个节点都存入哈希集合&#xff0c; 遍历链表 B 并判断每一个节点&#xff0c; 如果发现已存在在哈希集合中的&#xff0c;说明相交&#xff0c; 如果遍历结束&#xff0c;说明不相交。 时间复杂度&#xff1a;O(mn) 空间…

CentOS 6.5 配置国内在线yum源和制作openssh 9.8p1 rpm包 —— 筑梦之路

CentOS 6.5比较古老的版本了&#xff0c;而还是有一些古老的项目仍然在使用。 环境说明 1. 更换国内在线yum源 CentOS 6 在线可用yum源配置——筑梦之路_centos6可用yum源-CSDN博客 cat > CentOS-163.repo << EOF [base] nameCentOS-$releasever - Base - 163.com …

C组暑假第一次训练题解

A.寄包柜 题意 两种操作 1.在第i个柜子第j个格子输入 2.输出第i个柜子第j个格子的数字 分析 因为i和j最大为1e5&#xff0c;使用二维数组会爆空间&#xff0c;使用map即可解决 代码 #include<iostream> #include<algorithm> #include<cstring> #incl…

Java中线程的常用方法(并发编程基础)

Java中线程的常用方法 sleep 调用sleep会让当前线程从Running进入TIMED WAITING状态其它线程可以使用 interrupt 方法打断正在睡眠的线程,这时sleep方法会抛出InterruptedException睡眠结束后的线程未必会立刻得到执行建议用TimeUnit的sleep代替Thread的sleep来获得更好的可读…

均匀采样信号的鲁棒Savistky-Golay滤波(MATLAB)

S-G滤波器又称S-G卷积平滑器&#xff0c;它是一种特殊的低通滤波器&#xff0c;用来平滑噪声数据。该滤波器被广泛地运用于信号去噪&#xff0c;采用在时域内基于多项式最小二乘法及窗口移动实现最佳拟合的方法。与通常的滤波器要经过时域&#xff0d;频域&#xff0d;时域变换…

掌握 IPython:灵活运用系统环境变量

掌握 IPython&#xff1a;灵活运用系统环境变量 在数据科学和编程的广阔天地中&#xff0c;IPython 以其强大的交互式功能成为了探索和实验的利器。但你知道吗&#xff1f;IPython 同样能够与系统环境变量进行交互&#xff0c;这使得我们能够更灵活地控制我们的代码和环境。本…

ubuntu22 使用ufw防火墙

专栏总目录 一、安装 sudo apt update sudo apt install ufw 二、启动防火墙 &#xff08;一&#xff09;启动命令 sudo ufw enable &#xff08;二&#xff09;重启命令 sudo ufw reload 三、配置规则 #允许SSH连接 sudo ufw allow ssh #如果sshd服务端口指定到了8888&a…

Oracle PL / SQL 插入insert

INSERT是SQL的数据操作语言的一部分的SQL关键字之一。 DML可以操作关系数据库中的数据。 让我们从INSERT语句的第一种形式开始&#xff0c;INSERT ... VALUES。 INSERT ... VALUES 以下代码显示如何使用DML的INSERT VALUES子语句。 INSERT INTO authors ( id, name, birth_d…

RedHat运维-LinuxSELinux基础2-文件绑定SELinux上下文

1. 所有资源&#xff0c;比如进程、文件和________&#xff0c;都被打上了SELinux上下文&#xff1b; 2. 所有资源&#xff0c;比如进程、文件和________&#xff0c;都被打上了SELinux上下文&#xff1b; 3. 所有资源&#xff0c;比如进程、文件和________&#xff0c;都被打上…